From 2baebcc41be74c2932ba060a0833c7201ea95ee3 Mon Sep 17 00:00:00 2001 From: squid-protocol Date: Fri, 9 Oct 2026 12:49:11 -0400 Subject: [PATCH 1/3] equivalence: a CICS task's terminal and origin stated, SEND CONTROL compared, SQL after a SYNCPOINT ROLLBACK kept (#4270) Harness fixes the CBSA BMS front-end cases need (Part of #4270): - A case's or scenario's "termid" / "uctranst" / "origin": the task's terminal (EIBTRMID, $GGCICS_FACILITY and terminals.cfg / CicsTask.withTermid), its UCTRANST and its origin data, stated on both sides as the cics-crucible runner states them. Unstated, None: RETURN IMMEDIATE, INQUIRE TERMINAL UCTRANST and INQUIRE ASSOCIATION are refused by both runtimes, as before. - SEND CONTROL: the stub's SEND-CONTROL line is now an event on the COBOL side (CicsTask already recorded one), its options and CURSOR compared. Before, a CLEAR key's SEND CONTROL ERASE FREEKB differed by a missing event. - SYNCPOINT ROLLBACK rolls the task's Db2 connection back there and then; the SQL after it is a new unit of work committed with the task, as the COBOL side's Db2 does (CBSA INQACCCU's cursor failing inside CREACC's task). Before, the whole Db2 transaction was marked rollback-only and the caller's later INSERTs were lost on the Java side. oracle_assumptions.md Q3 says so; X27 names the cases. Co-Authored-By: Claude Opus 5.5 --- docs/language_status/oracle_assumptions.md | 9 ++- .../cobol_mainframe/test_equivalence_cics.py | 29 +++++++++ tests/tools/equivalence_cics.py | 65 +++++++++++++++++-- 3 files changed, 98 insertions(+), 5 deletions(-) diff --git a/docs/language_status/oracle_assumptions.md b/docs/language_status/oracle_assumptions.md index 4fbe12229..941392dfc 100644 --- a/docs/language_status/oracle_assumptions.md +++ b/docs/language_status/oracle_assumptions.md @@ -129,7 +129,7 @@ verdict, but it limits what the proof says about inputs outside the scenarios. | X24 | CICS | A task started with a channel (a scenario's `channel`: what a RUN TRANSID CHANNEL parent or a LINK CHANNEL caller passed), made its first program's current channel; the containers left on that channel compared at the task's end (dropped on an abend), byte for byte; RUN TRANSID children not run | ASSUMED | yes (async credit-card CRDTCHK, CSSTATS2, CSSTATUS, GETADDR, GETNAME) | | X25 | COBOL layout | SYNCHRONIZED slack bytes in the layout model (GalaxyIR `record_layout`, `_storage_spans`): IBM Enterprise COBOL boundaries (halfword up to 4 digits, fullword above, the 8-byte binary S9(10)-S9(18) included; COMP-1 / INDEX / pointers fullword; COMP-2 doubleword) counted from the record, the table slack of IBM's rule; GnuCOBOL / Micro Focus may align an 8-byte binary on a doubleword | ASSUMED (IBM's fullword; z/OS is the target) | no (no committed case reaches an 8-byte SYNC binary) | | X26 | CICS | BIF DEEDIT FIELD [LENGTH] edited in place in the region's EBCDIC page (CCSID 037); INQUIRE / SET TERMINAL UCTRANST as the CVDAs UCTRAN 450 / NOUCTRAN 451 / TRANIDONLY 452, the terminal's value stated by the run (the case TYPETERM's UCTRAN), a terminal RECEIVE after a SET refused; DFHVALUE(name) in the stub's programs is IBM's CVDA number; a DEEDIT field with no digit left, beyond 7-bit ASCII or past LENGTH, and the UCTRANST of a terminal other than the task's, refused | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-deedit-uctranst, unreleased) | -| X27 | CICS | RETURN TRANSID ... IMMEDIATE: the task of TRANSID attached at once with the COMMAREA, ahead of any terminal input and any START request, the terminal's next operator step left alone; its EIBAID is not stated by IBM (the crucible runner gives none and a case never reads it), its STARTCODE TD; INVREQ RESP2 1 (no terminal), INVREQ RESP2 2 (below the highest level), LENGERR RESP2 11 return to the program; LINK ... SYNCONRETURN accepted and ignored (IBM: "ignored if the link is local"); IMMEDIATE without TRANSID, and both INVREQs at once (no terminal below level 1), refused | ASSUMED (the STARTCODE; REFUSED where IBM is silent) | yes (cics-crucible pc-return-immediate, unreleased) | +| X27 | CICS | RETURN TRANSID ... IMMEDIATE: the task of TRANSID attached at once with the COMMAREA, ahead of any terminal input and any START request, the terminal's next operator step left alone; its EIBAID is not stated by IBM (the crucible runner gives none and a case never reads it), its STARTCODE TD; INVREQ RESP2 1 (no terminal), INVREQ RESP2 2 (below the highest level), LENGERR RESP2 11 return to the program; LINK ... SYNCONRETURN accepted and ignored (IBM: "ignored if the link is local"); IMMEDIATE without TRANSID, and both INVREQs at once (no terminal below level 1), refused | ASSUMED (the STARTCODE; REFUSED where IBM is silent) | yes (cics-crucible pc-return-immediate, unreleased; CBSA BNKMENU and the BNK1 screens' PF3, the task's terminal a case's `"termid"`: cbsa-bnkmenu, cbsa-bnk1cac ...) | | X28 | CICS | FORMATTIME with RESP / RESP2: INVREQ RESP2 1 for an ABSTIME below zero, nothing formatted (without RESP the INVREQ's handling is refused at run time); ASKTIME with NOHANDLE and without ABSTIME (EIBDATE / EIBTIME as dispatched, X4); READQ TS ... LENGTH(LENGTH OF area): the most INTO takes, LENGERR truncation, no length stored back; RECEIVE MAP ... ASIS: input delivered as typed, lower case kept; an ABSTIME that is not packed decimal (the port reads the field by its declared usage), STRINGFORMAT (RESP2 2) and the output areas of an INVREQ FORMATTIME not modelled / not read | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-resp-options, unreleased) | | X29 | CICS | INQUIRE ASSOCIATION(EIBTASKN) ODAPPLID / ODUSERID / ODFACILNAME / ODNETWORKID / ODFACILTYPE: the task's own origin data, the five values the run states (a case's `origin`, for a task terminal input started; unstated, refused), the facility type as IBM's CVDA, a command with no origin option refused (INVREQ RESP2 2 is ambiguous); DELETEQ TS: the whole queue and its READQ NEXT position, QIDERR, INVREQ for a name of binary zeros, RESP2 0; QUERY COUNTER (COUNTER / POOL / VALUE): the value left unchanged, INVREQ RESP2 201 for a counter that is not there, a value beyond a fullword, MINIMUM / MAXIMUM / NOSUSPEND, a task number other than EIBTASKN and the origin of a task not started by terminal input refused; RECEIVE MAP ... TERMINAL: the task's terminal, as every RECEIVE MAP | ASSUMED (REFUSED where IBM is silent) | INQUIRE ASSOCIATION, DELETEQ TS, RECEIVE MAP TERMINAL: yes (cics-crucible hc-inquire-deleteq, unreleased); QUERY COUNTER: no (the reference region has no named counters; unit tests on both runtimes) | | X30 | CICS | DEFINE COUNTER (COUNTER / POOL / VALUE; none: the initial value zero; a counter that exists: INVREQ RESP2 202; a pool or counter name outside IBM's characters: INVREQ RESP2 403 / 404) and DELETE COUNTER (a counter that is not there: INVREQ RESP2 201; a pool outside IBM's characters: 403); GET COUNTER and QUERY COUNTER answer INVREQ RESP2 201 for a counter that is not there (GET COUNTER answered NOTFND before: IBM lists none) and 403 / 404 for a bad pool / name; MINIMUM / MAXIMUM / NOSUSPEND / DCOUNTER, a VALUE below zero and a counter name of blanks refused | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-named-counters, unreleased) | @@ -1652,6 +1652,13 @@ The length READQ TS returns on ITEMERR or QIDERR is not documented, so it is not the task ends, rolled back with the task's recoverable files by SYNCPOINT ROLLBACK or an abend (X3). The transaction is the harness's (`equivalence_cics.py`, a `TransactionTemplate` around the task); a deployment must give each task the same unit of work. Reached: CBSA XFRFUN's four ROLLBACK paths are proven. +- **CICS, SQL after a SYNCPOINT ROLLBACK (#4270).** IBM: SYNCPOINT ROLLBACK ends the unit of work and the task's next + recoverable change starts a new one, committed when the task ends. The Java side rolls the task's Db2 connection back + at the SYNCPOINT ROLLBACK and goes on in the same transaction, so the SQL that follows is committed with the task, as + the COBOL side's Db2 commits it. Reached: CBSA INQACCCU's cursor failing inside CREACC's task (its SYNCPOINT + ROLLBACK, then CREACC's CONTROL updates and INSERTs: cbsa-creacc, cbsa-bnk1cac). A recoverable FILE changed after a + SYNCPOINT ROLLBACK is still undone with the task on the Java side (the transaction is marked rollback-only): no case + reaches one, and it would show as a difference. - **CICS, EXEC SQL COMMIT / ROLLBACK.** IBM: both are invalid under CICS -- Db2 for z/OS answers -925 / -926 (SQLSTATE 2D521; Db2 for z/OS Codes) and the task's unit of work is CICS's (SYNCPOINT). The det translator REFUSES a CICS program's ROLLBACK by name. A CICS program's COMMIT stays a reset of the SQLCA on the Java side and a real commit on diff --git a/tests/cobol_mainframe/test_equivalence_cics.py b/tests/cobol_mainframe/test_equivalence_cics.py index a642638e0..23af6d5f5 100644 --- a/tests/cobol_mainframe/test_equivalence_cics.py +++ b/tests/cobol_mainframe/test_equivalence_cics.py @@ -486,6 +486,35 @@ def test_events_are_compared_field_by_field(): assert ec.compare_events(cobol, java[:1])["diffs"][-1] == {"event": 2, "cobol": "RETURN", "java": None} +def test_send_control_is_an_event_both_sides_compare_by_options_and_cursor(): + """#4270 (CBSA's CLEAR key): the stub's SEND-CONTROL line is an event like CicsTask's, its options and CURSOR + compared -- a port that left it out, or sent other options, differs.""" + res = {"events": ["SEND-CONTROL pgm=BNKMENU cursor=-1 opts=ERASE FREEKB", "RETURN pgm=BNKMENU level=1 transid= len=0"], + "screens": [], "text": [], "return": {"transid": "", "commarea": None}} # fmt: skip + cobol = ec.cobol_events(res) + assert cobol[0] == {"event": "SEND-CONTROL", "options": ["ERASE", "FREEKB"], "cursor": None} + java = [{"event": "SEND-CONTROL", "options": ["FREEKB", "ERASE"], "cursor": None}, + {"event": "RETURN", "transid": None, "commarea": None}] # fmt: skip + assert ec.compare_events(cobol, java)["equal"] == 2 + assert ec.compare_events(cobol, [{**java[0], "options": ["ERASE"]}, java[1]])["equal"] == 1 + assert ec.compare_events(cobol, java[1:])["equal"] == 0 + + +def test_a_tasks_terminal_and_origin_are_stated_facts_or_none(): + """#4270: "termid" / "uctranst" / "origin" -- the scenario's, else the case's; unstated None (the commands that + read them are then refused by both runtimes); a malformed one refused by name.""" + case = {"termid": "T001", "uctranst": "NOUCTRAN"} + assert ec.terminal_facts(case, {"name": "s"}) == {"termid": "T001", "uctranst": "NOUCTRAN", "origin": None} + assert ec.terminal_facts({}, {"name": "s"}) == {"termid": None, "uctranst": None, "origin": None} + origin = {"applid": "CBSAREGN", "userid": "CICSUSER", "facilname": "T001", "networkid": "NET1", + "faciltype": "TERMINAL"} # fmt: skip + assert ec.terminal_facts(case, {"name": "s", "origin": origin})["origin"] == origin + for bad in ({"termid": "T 01"}, {"termid": "TOOLONG"}, {"termid": "T001", "uctranst": "YES"}, + {"uctranst": "UCTRAN"}, {"origin": {**origin, "userid": ""}}, {"origin": {"applid": "A"}}): # fmt: skip + with pytest.raises(ec.Unsupported): + ec.terminal_facts({}, {"name": "s", **bad}) + + def test_low_values_and_spaces_in_a_commarea_are_different_values(): """#4635: a field RECEIVE MAP left LOW-VALUES and one the port left spaces are different bytes to the next program (COSGN00C: the RETURN COMMAREA's CDEMO-USER-ID); trailing spaces alone are still not data.""" diff --git a/tests/tools/equivalence_cics.py b/tests/tools/equivalence_cics.py index 6ffba19fc..7ce5da074 100644 --- a/tests/tools/equivalence_cics.py +++ b/tests/tools/equivalence_cics.py @@ -344,6 +344,31 @@ def task_number(case: dict[str, Any], sc: dict[str, Any]) -> int: return n +UCTRANST_NAMES = ("UCTRAN", "NOUCTRAN", "TRANIDONLY") +ORIGIN_KEYS = ("applid", "userid", "facilname", "networkid", "faciltype") + + +def terminal_facts(case: dict[str, Any], sc: dict[str, Any]) -> dict[str, Any]: + """#4270 (CBSA's BMS front ends): the task's terminal, stated on both sides as the cics-crucible runner states it -- + "termid" (EIBTRMID and the principal facility: $EIBIN, $GGCICS_FACILITY and terminals.cfg / CicsTask.withTermid; + RETURN IMMEDIATE, register X27), "uctranst" (its TYPETERM's UCTRAN as INQUIRE TERMINAL UCTRANST answers it: + $GGCICS_UCTRANST / withUctranst, X26) and "origin" (the task's origin data, {applid, userid, facilname, + networkid, faciltype}: $GGCICS_ORIGIN / withOrigin, X29). The scenario's, else the case's; unstated, None, and + the commands that read them are refused by both runtimes, as before.""" + out: dict[str, Any] = {k: sc.get(k, case.get(k)) for k in ("termid", "uctranst", "origin")} + t = out["termid"] + if t is not None and (not isinstance(t, str) or not 1 <= len(t) <= 4 or not t.strip() or "," in t or " " in t): + raise Unsupported(f'scenario {sc.get("name")}: "termid" {t!r} is not a terminal name (1 to 4 characters)') + if out["uctranst"] is not None and (t is None or out["uctranst"] not in UCTRANST_NAMES): + raise Unsupported(f'scenario {sc.get("name")}: "uctranst" is one of {", ".join(UCTRANST_NAMES)}, of a ' + 'stated "termid"') # fmt: skip + o = out["origin"] + if o is not None and (not isinstance(o, dict) or sorted(o) != sorted(ORIGIN_KEYS) + or any(not isinstance(o[k], str) or "," in o[k] or not o[k] for k in ORIGIN_KEYS)): # fmt: skip + raise Unsupported(f'scenario {sc.get("name")}: "origin" is {{{", ".join(ORIGIN_KEYS)}}}, each a name') + return out + + def task_facts(case: dict[str, Any], sc: dict[str, Any]) -> tuple[str | None, str | None]: """#4270 (GenApp LGICVS01, a terminal transaction): how the task was started and what the operator typed -- facts of the run stated on both sides as the cics-crucible runner states them (ASSIGN STARTCODE: $GGCICS_STARTCODE / @@ -1075,7 +1100,7 @@ def cics_driver(program: str, has_commarea: bool) -> str: "DATA DIVISION.", "FILE SECTION.", "FD EIB-IN.", "01 EIB-LINE.", " 05 IN-TRNID PIC X(4).", " 05 FILLER PIC X.", " 05 IN-AID PIC X(8).", " 05 FILLER PIC X.", " 05 IN-DATE PIC 9(7).", " 05 FILLER PIC X.", - " 05 IN-TIME PIC 9(7).", + " 05 IN-TIME PIC 9(7).", " 05 FILLER PIC X.", " 05 IN-TRMID PIC X(4).", "WORKING-STORAGE SECTION.", "COPY DFHEIBLK.", "COPY DFHAID.", "01 WS-CA PIC X(32767).", "01 WS-LEN PIC S9(9) COMP-5.", "01 WS-PTR USAGE POINTER.", "LINKAGE SECTION.", "01 LK-CA PIC X(32767).", @@ -1083,6 +1108,7 @@ def cics_driver(program: str, has_commarea: bool) -> str: " OPEN INPUT EIB-IN", " READ EIB-IN", " CLOSE EIB-IN", " INITIALIZE DFHEIBLK GG-CICS", " MOVE IN-TRNID TO EIBTRNID", " MOVE IN-DATE TO EIBDATE", " MOVE IN-TIME TO EIBTIME", + " MOVE IN-TRMID TO EIBTRMID", " CALL 'GGCTASKN' USING GG-CICS", " MOVE GG-NUM TO EIBTASKN", " MOVE 0 TO GG-NUM", " EVALUATE IN-AID"] # fmt: skip @@ -1791,8 +1817,11 @@ def run_cobol_cics(case: dict[str, Any], corpus: Path, work: Path, files: list[d y, mo, dd = date.split("/") eib_date = f"{int(y) - 1900:03d}{_day_of_year(int(y), int(mo), int(dd)):03d}"[-7:].rjust(7, "0") eib_time = "0" + time.replace(":", "")[:6] - (d / "eib.in").write_text(f"{case['transid']:<4} {sc.get('aid', 'DFHENTER'):<8} {eib_date} {eib_time}\n", - encoding="ascii") # fmt: skip + term = terminal_facts(case, sc) # #4270: the task's terminal, when the case states one + (d / "eib.in").write_text(f"{case['transid']:<4} {sc.get('aid', 'DFHENTER'):<8} {eib_date} {eib_time} " + f"{term['termid'] or '':<4}\n", encoding="ascii") # fmt: skip + if term["termid"]: # the region's terminals: the task's own (START / INQUIRE / SET TERMINAL's TERMIDERR) + (d / "terminals.cfg").write_text(f"{term['termid']}\n", encoding="ascii") rel = f"/work/scenarios/{sc['name']}" sqlenv = equivalence_db2.cobol_env("/work/stmts.txt") if db2 else "" if db2: # #4173: each statement the task runs traced; its planned SQL faults, the ones that fire logged @@ -1806,6 +1835,9 @@ def run_cobol_cics(case: dict[str, Any], corpus: Path, work: Path, files: list[d script.append(f"set +e; {cov.trace_env(f'{rel}/{cov.TRACE_NAME}')}GGCICS_DIR={rel} GGCICS_OUT={rel}/out EIBIN={rel}/eib.in " f"GGCICS_TASKN={task_number(case, sc)} LD_PRELOAD=/work/ggdisplay.so " + (f"GGCICS_STARTCODE={task_facts(case, sc)[0]} " if task_facts(case, sc)[0] else "") + + (f"GGCICS_FACILITY={term['termid']} " if term["termid"] else "") + + (f"GGCICS_UCTRANST={term['uctranst']} " if term["uctranst"] else "") + + (f"GGCICS_ORIGIN={','.join(term['origin'][k] for k in ORIGIN_KEYS)} " if term["origin"] else "") + f"{sqlenv}COB_CURRENT_DATE='{case['clock']}' ./task > {rel}/stdout.txt 2>&1; " f"echo $? > {rel}/rc; set -e") # fmt: skip if db2: # what the task left in each compared table @@ -2672,6 +2704,13 @@ def cics_equivalence_test(case: dict[str, Any], src: Path, files: list[dict[str, "datasource.DataSourceTransactionManager(db2Jdbc.getJdbcTemplate().getDataSource()))" ".executeWithoutResult(db2Status -> {\n ") if db2 else "" # fmt: skip db2_rollback = "db2Status.setRollbackOnly(); " if db2 else "" + # #4270 (CBSA CREACC): SYNCPOINT ROLLBACK ends the task's Db2 unit of work there and then -- its changes undone on + # the task's connection -- and the task's later SQL is a new unit of work, committed when the task ends, as the + # COBOL side's Db2 does it (an abend still backs out only what came after). Marking the whole transaction + # rollback-only lost the SQL a caller ran after a LINKed program's rollback (INQACCCU -> CREACC's INSERTs). + db2_rollback_now = ("try { org.springframework.jdbc.datasource.DataSourceUtils.getConnection(db2Jdbc.getJdbcTemplate()" + ".getDataSource()).rollback(); } catch (java.sql.SQLException e) { throw new " + "IllegalStateException(e); } ") if db2 else "" # fmt: skip abend_catch = (" catch (CicsAbendException e) {\n status.setRollbackOnly();\n" f" {db2_rollback}task.abend(e.getAbcode());\n }}") # fmt: skip abend_catch = abend_catch if has_abend else "" @@ -2767,6 +2806,9 @@ class EquivalenceRunTest {{ // #4270: ASSIGN STARTCODE and an unformatted RECEIVE's input, as the stub's ($GGCICS_STARTCODE, terminal.in) .withStartcode(sc.get("startcode").isNull() ? null : sc.get("startcode").asText()) .withTerminalInput(sc.get("terminal").isNull() ? null : sc.get("terminal").asText()) + // #4270: the task's terminal and origin data, as the stub's ($GGCICS_FACILITY, _UCTRANST, _ORIGIN) + .withTermid(sc.get("termid").isNull() ? null : sc.get("termid").asText()) + .withUctranst(sc.get("uctranst").isNull() ? null : sc.get("uctranst").asText()) .withTempStorage(tempStorage(sc)) // #4270: the TS queues the task starts with, as the stub's // RECOVERY(NONE) files: their changes made outside the unit of work, so they survive a backout .withNonRecoverable(java.util.Set.of({", ".join(f'"{x}"' for x in non_recoverable_files(case, files))}), @@ -2779,6 +2821,11 @@ class EquivalenceRunTest {{ if (calen != null) {{ task.withExactCommarea(); }} + if (sc.hasNonNull("origin")) {{ // #4270 (X29): INQUIRE ASSOCIATION -- the origin data the case states + JsonNode o = sc.get("origin"); + task.withOrigin(o.get("applid").asText(), o.get("userid").asText(), o.get("facilname").asText(), + o.get("networkid").asText(), o.get("faciltype").asText()); + }} // #4765: a LINKed task's COMMAREA bytes too, by reference (a caller's LINK passes both): a port that takes // them (task.linkArea()) leaves its result there, every occurrence of a table included byte[] area = sc.hasNonNull("area") ? java.util.HexFormat.of().parseHex(sc.get("area").asText()) : null; @@ -2813,7 +2860,7 @@ class EquivalenceRunTest {{ }} // one unit of work: a SYNCPOINT ROLLBACK, or an abend that ends the task, backs its changes out {db2_begin}new org.springframework.transaction.support.TransactionTemplate(transactions).executeWithoutResult(status -> {{ - task.onRollback(() -> {{ status.setRollbackOnly(); {db2_rollback}}}); + task.onRollback(() -> {{ status.setRollbackOnly(); {db2_rollback_now}}}); try {{ if (facades) {{ try (CicsTask.Joined joined = CicsTask.join(region)) {{ @@ -3020,6 +3067,7 @@ def run_java_cics(case: dict[str, Any], corpus: Path, work: Path, cobol_work: Pa "channel": _channel_json(case, sc), "counters": _counters(case, sc), "taskn": task_number(case, sc), "startcode": task_facts(case, sc)[0], "terminal": task_facts(case, sc)[1], + **terminal_facts(case, sc), "ts": ts_seed(case, sc)}) # fmt: skip (inputs / "scenarios.json").write_text(json.dumps(scenarios, indent=1), encoding="utf-8") props = ej.data_charset_arg(case) @@ -3286,6 +3334,10 @@ def cobol_events(res: dict[str, Any]) -> list[dict[str, Any]]: "options": s["options"], "cursor": s["cursor"]}) # fmt: skip elif verb == "SEND-TEXT": out.append({"event": "SEND-TEXT", "text": next(texts)}) + elif verb == "SEND-CONTROL": # #4270: CicsTask.sendControl records it -- its options and CURSOR's offset + cur = int((re.search(r"\bcursor=(-?\d+)", args) or [None, "-1"])[1]) + out.append({"event": "SEND-CONTROL", "options": args.partition("opts=")[2].split(), + "cursor": cur if cur >= 0 else None}) # fmt: skip elif verb in ("SYNCPOINT", "SYNCPOINT-ROLLBACK"): # file updates: CicsTask.syncpoint / rollback record them out.append({"event": verb}) elif verb == "WRITEQ-TD": # CicsTask.writeqTd records the queue and the record's text @@ -3410,6 +3462,11 @@ def compare_events(cobol: list[dict[str, Any]], java: list[dict[str, Any]]) -> d for name in cv: if not same(cv[name], jv.get(name)): bad.append({"field": f"{part}.{name}", "cobol": cv[name], "java": jv.get(name)}) + if c["event"] == "SEND-CONTROL": # #4270: ERASE / FREEKB / ALARM ... and the cursor, as the crucible compares + if sorted(c.get("options") or []) != sorted(j.get("options") or []): + bad.append({"field": "options", "cobol": c.get("options"), "java": j.get("options")}) + if c.get("cursor") != j.get("cursor"): + bad.append({"field": "cursor", "cobol": c.get("cursor"), "java": j.get("cursor")}) if c["event"] == "SEND-MAP" and "subfields" in c: # #4053: attributes, colour, highlight, cursor, options cs, js = c["subfields"], java_subfields(j.get("subfields")) for name in sorted(set(cs) | set(js)): From dc41572ddc3c4e77ab596bc9251600d4d9be3d13 Mon Sep 17 00:00:00 2001 From: squid-protocol Date: Fri, 9 Oct 2026 13:19:33 -0400 Subject: [PATCH 2/3] equivalence: cases for the CBSA programs made whole (Part of #4270) Fifteen new CBSA cases, each proved in a local det sweep (Db2 local): - BMS front ends, each with its LINKed back ends run in the task: cbsa-bnkmenu, cbsa-bnk1cac (CREACC, INQCUST, INQACCCU, ABNDPROC), cbsa-bnk1cra (DBCRFUN; INQUIRE ASSOCIATION from a stated origin), cbsa-bnk1dac (INQACC, DELACC), cbsa-bnk1dcs (INQCUST, UPDCUST; INQUIRE / SET TERMINAL UCTRANST from a stated terminal). - LINKed services: cbsa-creacc, cbsa-acctctrl. - From the paused equiv/4270-cbsa-cases branch (its channel prerequisite #4647 has merged), re-proved on main: cbsa-getcompy, cbsa-getscode, cbsa-inqcust, cbsa-crdtagy1..5. - det_sweep_coverage.json re-measured by a full local det sweep (as expected; the harness fingerprints moved). - Register: C12, X24, L3 (prior art), X26, X27, X29 and Q3 name the new proofs. Not cased (refused by name): BNK1TFN, BNK1UAC, BNK1CCS (#4695: RETURN LENGTH past the DTO; BNK1UAC also #4806), BNK1CCA (#4807: BMS OCCURS map). Co-Authored-By: Claude Opus 5.5 --- docs/language_status/oracle_assumptions.md | 17 +- docs/language_status/register/C12.md | 2 +- docs/language_status/register/L3.md | 9 +- docs/language_status/register/Q3.md | 7 + docs/language_status/register/X24.md | 2 +- docs/language_status/register/X26.md | 2 +- docs/language_status/register/X27.md | 2 +- docs/language_status/register/X29.md | 2 +- tests/equivalence/cbsa-acctctrl/LICENSE | 277 ++++ tests/equivalence/cbsa-acctctrl/NOTICE | 13 + tests/equivalence/cbsa-acctctrl/case.json | 70 + tests/equivalence/cbsa-acctctrl/seed.sql | 15 + tests/equivalence/cbsa-bnk1cac/LICENSE | 277 ++++ tests/equivalence/cbsa-bnk1cac/NOTICE | 16 + tests/equivalence/cbsa-bnk1cac/abndfile.bin | 0 tests/equivalence/cbsa-bnk1cac/case.json | 369 +++++ tests/equivalence/cbsa-bnk1cac/customer.txt | 6 + tests/equivalence/cbsa-bnk1cac/seed.sql | 21 + tests/equivalence/cbsa-bnk1cra/LICENSE | 277 ++++ tests/equivalence/cbsa-bnk1cra/NOTICE | 15 + tests/equivalence/cbsa-bnk1cra/abndfile.bin | 0 tests/equivalence/cbsa-bnk1cra/case.json | 324 ++++ tests/equivalence/cbsa-bnk1cra/seed.sql | 13 + tests/equivalence/cbsa-bnk1dac/LICENSE | 277 ++++ tests/equivalence/cbsa-bnk1dac/NOTICE | 15 + tests/equivalence/cbsa-bnk1dac/abndfile.bin | 0 tests/equivalence/cbsa-bnk1dac/case.json | 244 +++ tests/equivalence/cbsa-bnk1dac/seed.sql | 13 + tests/equivalence/cbsa-bnk1dcs/LICENSE | 277 ++++ tests/equivalence/cbsa-bnk1dcs/NOTICE | 14 + tests/equivalence/cbsa-bnk1dcs/abndfile.bin | 0 tests/equivalence/cbsa-bnk1dcs/case.json | 414 ++++++ tests/equivalence/cbsa-bnk1dcs/customer.txt | 6 + tests/equivalence/cbsa-bnkmenu/LICENSE | 277 ++++ tests/equivalence/cbsa-bnkmenu/NOTICE | 10 + tests/equivalence/cbsa-bnkmenu/case.json | 198 +++ tests/equivalence/cbsa-crdtagy1/LICENSE | 277 ++++ tests/equivalence/cbsa-crdtagy1/NOTICE | 12 + tests/equivalence/cbsa-crdtagy1/case.json | 118 ++ tests/equivalence/cbsa-crdtagy2/LICENSE | 277 ++++ tests/equivalence/cbsa-crdtagy2/NOTICE | 12 + tests/equivalence/cbsa-crdtagy2/case.json | 118 ++ tests/equivalence/cbsa-crdtagy3/LICENSE | 277 ++++ tests/equivalence/cbsa-crdtagy3/NOTICE | 12 + tests/equivalence/cbsa-crdtagy3/case.json | 118 ++ tests/equivalence/cbsa-crdtagy4/LICENSE | 277 ++++ tests/equivalence/cbsa-crdtagy4/NOTICE | 12 + tests/equivalence/cbsa-crdtagy4/case.json | 118 ++ tests/equivalence/cbsa-crdtagy5/LICENSE | 277 ++++ tests/equivalence/cbsa-crdtagy5/NOTICE | 12 + tests/equivalence/cbsa-crdtagy5/case.json | 118 ++ tests/equivalence/cbsa-creacc/LICENSE | 277 ++++ tests/equivalence/cbsa-creacc/NOTICE | 16 + tests/equivalence/cbsa-creacc/abndfile.bin | 0 tests/equivalence/cbsa-creacc/case.json | 353 +++++ tests/equivalence/cbsa-creacc/customer.txt | 6 + tests/equivalence/cbsa-creacc/seed.sql | 21 + tests/equivalence/cbsa-getcompy/LICENSE | 277 ++++ tests/equivalence/cbsa-getcompy/NOTICE | 9 + tests/equivalence/cbsa-getcompy/case.json | 48 + tests/equivalence/cbsa-getscode/LICENSE | 277 ++++ tests/equivalence/cbsa-getscode/NOTICE | 10 + tests/equivalence/cbsa-getscode/case.json | 48 + tests/equivalence/cbsa-inqcust/LICENSE | 277 ++++ tests/equivalence/cbsa-inqcust/NOTICE | 13 + tests/equivalence/cbsa-inqcust/abndfile.bin | 0 tests/equivalence/cbsa-inqcust/case.json | 421 ++++++ tests/equivalence/cbsa-inqcust/customer.txt | 8 + tests/equivalence/det_sweep_coverage.json | 1489 +++++++++++++++---- 69 files changed, 8726 insertions(+), 340 deletions(-) create mode 100644 tests/equivalence/cbsa-acctctrl/LICENSE create mode 100644 tests/equivalence/cbsa-acctctrl/NOTICE create mode 100644 tests/equivalence/cbsa-acctctrl/case.json create mode 100644 tests/equivalence/cbsa-acctctrl/seed.sql create mode 100644 tests/equivalence/cbsa-bnk1cac/LICENSE create mode 100644 tests/equivalence/cbsa-bnk1cac/NOTICE create mode 100644 tests/equivalence/cbsa-bnk1cac/abndfile.bin create mode 100644 tests/equivalence/cbsa-bnk1cac/case.json create mode 100644 tests/equivalence/cbsa-bnk1cac/customer.txt create mode 100644 tests/equivalence/cbsa-bnk1cac/seed.sql create mode 100644 tests/equivalence/cbsa-bnk1cra/LICENSE create mode 100644 tests/equivalence/cbsa-bnk1cra/NOTICE create mode 100644 tests/equivalence/cbsa-bnk1cra/abndfile.bin create mode 100644 tests/equivalence/cbsa-bnk1cra/case.json create mode 100644 tests/equivalence/cbsa-bnk1cra/seed.sql create mode 100644 tests/equivalence/cbsa-bnk1dac/LICENSE create mode 100644 tests/equivalence/cbsa-bnk1dac/NOTICE create mode 100644 tests/equivalence/cbsa-bnk1dac/abndfile.bin create mode 100644 tests/equivalence/cbsa-bnk1dac/case.json create mode 100644 tests/equivalence/cbsa-bnk1dac/seed.sql create mode 100644 tests/equivalence/cbsa-bnk1dcs/LICENSE create mode 100644 tests/equivalence/cbsa-bnk1dcs/NOTICE create mode 100644 tests/equivalence/cbsa-bnk1dcs/abndfile.bin create mode 100644 tests/equivalence/cbsa-bnk1dcs/case.json create mode 100644 tests/equivalence/cbsa-bnk1dcs/customer.txt create mode 100644 tests/equivalence/cbsa-bnkmenu/LICENSE create mode 100644 tests/equivalence/cbsa-bnkmenu/NOTICE create mode 100644 tests/equivalence/cbsa-bnkmenu/case.json create mode 100644 tests/equivalence/cbsa-crdtagy1/LICENSE create mode 100644 tests/equivalence/cbsa-crdtagy1/NOTICE create mode 100644 tests/equivalence/cbsa-crdtagy1/case.json create mode 100644 tests/equivalence/cbsa-crdtagy2/LICENSE create mode 100644 tests/equivalence/cbsa-crdtagy2/NOTICE create mode 100644 tests/equivalence/cbsa-crdtagy2/case.json create mode 100644 tests/equivalence/cbsa-crdtagy3/LICENSE create mode 100644 tests/equivalence/cbsa-crdtagy3/NOTICE create mode 100644 tests/equivalence/cbsa-crdtagy3/case.json create mode 100644 tests/equivalence/cbsa-crdtagy4/LICENSE create mode 100644 tests/equivalence/cbsa-crdtagy4/NOTICE create mode 100644 tests/equivalence/cbsa-crdtagy4/case.json create mode 100644 tests/equivalence/cbsa-crdtagy5/LICENSE create mode 100644 tests/equivalence/cbsa-crdtagy5/NOTICE create mode 100644 tests/equivalence/cbsa-crdtagy5/case.json create mode 100644 tests/equivalence/cbsa-creacc/LICENSE create mode 100644 tests/equivalence/cbsa-creacc/NOTICE create mode 100644 tests/equivalence/cbsa-creacc/abndfile.bin create mode 100644 tests/equivalence/cbsa-creacc/case.json create mode 100644 tests/equivalence/cbsa-creacc/customer.txt create mode 100644 tests/equivalence/cbsa-creacc/seed.sql create mode 100644 tests/equivalence/cbsa-getcompy/LICENSE create mode 100644 tests/equivalence/cbsa-getcompy/NOTICE create mode 100644 tests/equivalence/cbsa-getcompy/case.json create mode 100644 tests/equivalence/cbsa-getscode/LICENSE create mode 100644 tests/equivalence/cbsa-getscode/NOTICE create mode 100644 tests/equivalence/cbsa-getscode/case.json create mode 100644 tests/equivalence/cbsa-inqcust/LICENSE create mode 100644 tests/equivalence/cbsa-inqcust/NOTICE create mode 100644 tests/equivalence/cbsa-inqcust/abndfile.bin create mode 100644 tests/equivalence/cbsa-inqcust/case.json create mode 100644 tests/equivalence/cbsa-inqcust/customer.txt diff --git a/docs/language_status/oracle_assumptions.md b/docs/language_status/oracle_assumptions.md index 491c485c0..df3d4c6bd 100644 --- a/docs/language_status/oracle_assumptions.md +++ b/docs/language_status/oracle_assumptions.md @@ -90,7 +90,7 @@ verdict, but it limits what the proof says about inputs outside the scenarios. | C9 | compiler | POINTER is 8 bytes in GnuCOBOL (x86-64), 4 on z/OS | DIFFERS (declared: each side's fields read by its own layout, compared by name; a POINTER only as NULL or not) | only NULL (CBSA, data after one included) | | C10 | compiler | INITIALIZE / VALUE ZERO zoned items: unsigned F zone (GnuCOBOL) vs preferred C sign (z/OS) | DIFFERS (tolerated where a case declares it) | yes (CardDemo READACCT ARRYFILE) | | C11 | compiler | A non-digit in a numeric DISPLAY item: MOVEd from an alphanumeric item (#4049); MOVEd to a binary item (#4652); read as a MOVE sender, an operand, a comparand, and the sign rewrite of a signed sender (#4662) | DIFFERS (#4049: inputs kept out of the cases) / MODELLED, the oracle's rules (#4652, #4662) | yes (COMEN01C option `1!`; GenApp LGTESTP4's add) | -| C12 | compiler | FUNCTION RANDOM: the oracle's generator (glibc via GnuCOBOL), not IBM's unpublished one; a seed IBM does not allow refused | DIFFERS (the numbers) / ASSUMED (the interface) | translated, no proof yet (CBSA CRDTAGY1-5, INQCUST; GenApp LGICVS01) | +| C12 | compiler | FUNCTION RANDOM: the oracle's generator (glibc via GnuCOBOL), not IBM's unpublished one; a seed IBM does not allow refused | DIFFERS (the numbers) / ASSUMED (the interface) | yes (CBSA CRDTAGY1-5, INQCUST: cbsa-crdtagy1..5, cbsa-inqcust, seeds 0 and a stated `"taskn"`); translated, no proof yet (GenApp LGICVS01) | | C13 | compiler | A numeric operand compared with a nonnumeric one (an alphanumeric, alphabetic or numeric-edited item): compared as its characters, not by value (#4665) | MATCHED (unsigned integer literals as written; zoned, packed and binary items as their digits, sign dropped; non-integer ones as the oracle's digits) / REFUSED (a signed literal, a SIGN SEPARATE or P-scaled item, an arithmetic expression, an equality with a literal of more decimal places than an edited item) | yes: CardDemo COTRTLIC (proven; an alphanumeric item against `0`); no proven program compares an edited item with a number | | C14 | compiler | Size errors without ON SIZE ERROR: a zero divisor leaves the receivers unchanged in the oracle (libcob's NaN), the det runtime the same (#4655); z/OS's result is undefined (a decimal-divide exception); 0 ** a negative is 0 in the oracle, a size error on z/OS | MATCHED (det runtime = oracle) / DIFFERS (oracle vs z/OS) | not known to be: no proven scenario divides by zero | | C15 | compiler | `CALL identifier`: the port dispatches over the program names the item can hold, found from the source (VALUE, VALUE table, MOVEs of literals); uppercase names of up to 8 characters; any other value, write or name refused by name (#4736) | MODELLED where the names are known, REFUSED where they are not | yes (end-to-end test against cobc; DBB EPSCSMRT translates whole, its callee EPSMPMT is refused) | @@ -126,18 +126,18 @@ verdict, but it limits what the proof says about inputs outside the scenarios. | X21 | CICS | EIBTASKN: the task's number is a stated fact of the run (`$GGCICS_TASKN` / `CicsTask.withTaskNumber`, a case's or scenario's `"taskn"`, default 0), not the number CICS assigns; a value outside 0 to 9,999,999 refused | DIFFERS (the value) / MATCHED (both sides) | yes (every CICS task; read by CBSA's Db2 programs, GenApp LGICDB01) | | X22 | CICS | READ GTEQ / GENERIC on a KSDS: the first record whose key (or its first KEYLENGTH bytes) equals RIDFLD's or, with GTEQ, is greater, in the browse's key order (D1); NOTFND RESP2 80; READ UPDATE holds the record found; RIDFLD not updated; a GENERIC KEYLENGTH not shorter than the key or not above zero, a non-constant KEYLENGTH and a RIDFLD shorter than the key searched refused | ASSUMED (REFUSED where IBM is silent or the layout decides) | yes (GenApp LGICVS01 genapp-lgicvs01) | | X23 | CICS | A COMMAREA of a stated length (a scenario's `commarea_length`, EIBCALEN shorter than the record): the program is given exactly those bytes; a reference past EIBCALEN refused on both sides, the task judged up to it | ASSUMED (REFUSED past EIBCALEN) | yes (GenApp LGACDB01, LGACDB02, LGDPDB01, LGIPDB01) | -| X24 | CICS | A task started with a channel (a scenario's `channel`: what a RUN TRANSID CHANNEL parent or a LINK CHANNEL caller passed), made its first program's current channel; the containers left on that channel compared at the task's end (dropped on an abend), byte for byte; RUN TRANSID children not run | ASSUMED | yes (async credit-card CRDTCHK, CSSTATS2, CSSTATUS, GETADDR, GETNAME) | +| X24 | CICS | A task started with a channel (a scenario's `channel`: what a RUN TRANSID CHANNEL parent or a LINK CHANNEL caller passed), made its first program's current channel; the containers left on that channel compared at the task's end (dropped on an abend), byte for byte; RUN TRANSID children not run | ASSUMED | yes (async credit-card CRDTCHK, CSSTATS2, CSSTATUS, GETADDR, GETNAME; CBSA CRDTAGY1-5, an explicit CHANNEL(CIPCREDCHANN)) | | X25 | COBOL layout | SYNCHRONIZED slack bytes in the layout model (GalaxyIR `record_layout`, `_storage_spans`): IBM Enterprise COBOL boundaries (halfword up to 4 digits, fullword above, the 8-byte binary S9(10)-S9(18) included; COMP-1 / INDEX / pointers fullword; COMP-2 doubleword) counted from the record, the table slack of IBM's rule; GnuCOBOL / Micro Focus may align an 8-byte binary on a doubleword | ASSUMED (IBM's fullword; z/OS is the target) | no (no committed case reaches an 8-byte SYNC binary) | -| X26 | CICS | BIF DEEDIT FIELD [LENGTH] edited in place in the region's EBCDIC page (CCSID 037); INQUIRE / SET TERMINAL UCTRANST as the CVDAs UCTRAN 450 / NOUCTRAN 451 / TRANIDONLY 452, the terminal's value stated by the run (the case TYPETERM's UCTRAN), a terminal RECEIVE after a SET refused; DFHVALUE(name) in the stub's programs is IBM's CVDA number; a DEEDIT field with no digit left, beyond 7-bit ASCII or past LENGTH, and the UCTRANST of a terminal other than the task's, refused | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-deedit-uctranst, unreleased) | +| X26 | CICS | BIF DEEDIT FIELD [LENGTH] edited in place in the region's EBCDIC page (CCSID 037); INQUIRE / SET TERMINAL UCTRANST as the CVDAs UCTRAN 450 / NOUCTRAN 451 / TRANIDONLY 452, the terminal's value stated by the run (the case TYPETERM's UCTRAN), a terminal RECEIVE after a SET refused; DFHVALUE(name) in the stub's programs is IBM's CVDA number; a DEEDIT field with no digit left, beyond 7-bit ASCII or past LENGTH, and the UCTRANST of a terminal other than the task's, refused | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-deedit-uctranst, unreleased; CBSA BNK1DCS's UCTRANST store / restore and the BNK1 screens' DEEDIT: cbsa-bnk1dcs, cbsa-bnk1cac ...) | | X27 | CICS | RETURN TRANSID ... IMMEDIATE: the task of TRANSID attached at once with the COMMAREA, ahead of any terminal input and any START request, the terminal's next operator step left alone; its EIBAID is not stated by IBM (the crucible runner gives none and a case never reads it), its STARTCODE TD; INVREQ RESP2 1 (no terminal), INVREQ RESP2 2 (below the highest level), LENGERR RESP2 11 return to the program; LINK ... SYNCONRETURN accepted and ignored (IBM: "ignored if the link is local"); IMMEDIATE without TRANSID, and both INVREQs at once (no terminal below level 1), refused | ASSUMED (the STARTCODE; REFUSED where IBM is silent) | yes (cics-crucible pc-return-immediate, unreleased; CBSA BNKMENU and the BNK1 screens' PF3, the task's terminal a case's `"termid"`: cbsa-bnkmenu, cbsa-bnk1cac ...) | | X28 | CICS | FORMATTIME with RESP / RESP2: INVREQ RESP2 1 for an ABSTIME below zero, nothing formatted (without RESP the INVREQ's handling is refused at run time); ASKTIME with NOHANDLE and without ABSTIME (EIBDATE / EIBTIME as dispatched, X4); READQ TS ... LENGTH(LENGTH OF area): the most INTO takes, LENGERR truncation, no length stored back; RECEIVE MAP ... ASIS: input delivered as typed, lower case kept; an ABSTIME that is not packed decimal (the port reads the field by its declared usage), STRINGFORMAT (RESP2 2) and the output areas of an INVREQ FORMATTIME not modelled / not read | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-resp-options, unreleased) | -| X29 | CICS | INQUIRE ASSOCIATION(EIBTASKN) ODAPPLID / ODUSERID / ODFACILNAME / ODNETWORKID / ODFACILTYPE: the task's own origin data, the five values the run states (a case's `origin`, for a task terminal input started; unstated, refused), the facility type as IBM's CVDA, a command with no origin option refused (INVREQ RESP2 2 is ambiguous); DELETEQ TS: the whole queue and its READQ NEXT position, QIDERR, INVREQ for a name of binary zeros, RESP2 0; QUERY COUNTER (COUNTER / POOL / VALUE): the value left unchanged, INVREQ RESP2 201 for a counter that is not there, a value beyond a fullword, MINIMUM / MAXIMUM / NOSUSPEND, a task number other than EIBTASKN and the origin of a task not started by terminal input refused; RECEIVE MAP ... TERMINAL: the task's terminal, as every RECEIVE MAP | ASSUMED (REFUSED where IBM is silent) | INQUIRE ASSOCIATION, DELETEQ TS, RECEIVE MAP TERMINAL: yes (cics-crucible hc-inquire-deleteq, unreleased); QUERY COUNTER: no (the reference region has no named counters; unit tests on both runtimes) | +| X29 | CICS | INQUIRE ASSOCIATION(EIBTASKN) ODAPPLID / ODUSERID / ODFACILNAME / ODNETWORKID / ODFACILTYPE: the task's own origin data, the five values the run states (a case's `origin`, for a task terminal input started; unstated, refused), the facility type as IBM's CVDA, a command with no origin option refused (INVREQ RESP2 2 is ambiguous); DELETEQ TS: the whole queue and its READQ NEXT position, QIDERR, INVREQ for a name of binary zeros, RESP2 0; QUERY COUNTER (COUNTER / POOL / VALUE): the value left unchanged, INVREQ RESP2 201 for a counter that is not there, a value beyond a fullword, MINIMUM / MAXIMUM / NOSUSPEND, a task number other than EIBTASKN and the origin of a task not started by terminal input refused; RECEIVE MAP ... TERMINAL: the task's terminal, as every RECEIVE MAP | ASSUMED (REFUSED where IBM is silent) | INQUIRE ASSOCIATION, DELETEQ TS, RECEIVE MAP TERMINAL: yes (cics-crucible hc-inquire-deleteq, unreleased; INQUIRE ASSOCIATION and RECEIVE MAP TERMINAL also CBSA BNK1CRA / BNK1DCS: cbsa-bnk1cra, cbsa-bnk1dcs, a case's `"origin"`); QUERY COUNTER: no (the reference region has no named counters; unit tests on both runtimes) | | X30 | CICS | DEFINE COUNTER (COUNTER / POOL / VALUE; none: the initial value zero; a counter that exists: INVREQ RESP2 202; a pool or counter name outside IBM's characters: INVREQ RESP2 403 / 404) and DELETE COUNTER (a counter that is not there: INVREQ RESP2 201; a pool outside IBM's characters: 403); GET COUNTER and QUERY COUNTER answer INVREQ RESP2 201 for a counter that is not there (GET COUNTER answered NOTFND before: IBM lists none) and 403 / 404 for a bad pool / name; MINIMUM / MAXIMUM / NOSUSPEND / DCOUNTER, a VALUE below zero and a counter name of blanks refused | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible hc-named-counters, unreleased) | | X31 | CICS | SEND MAP / RECEIVE MAP for a map its mapset does not hold (MAPSET omitted: IBM defaults it to the MAP name, so `SEND MAP('BNK1CCM')` looks for map BNK1CCM in mapset BNK1CCM): abend ABM0, the transaction terminated, no condition raised (RESP / RESP2 / HANDLE CONDITION do not see it; a HANDLE ABEND exit does), recorded as an ABEND event with cause `system` | ASSUMED (REFUSED where IBM is silent: the mapset itself undefined, a non-constant name) | yes (cics-crucible hc-map-not-in-mapset, unreleased) | | X32 | CICS | INQUIRE URIMAP's browse (START / NEXT / END with URIMAP, PATH, TRANSACTION: END RESP2 2 past the last definition, ILLOGIC RESP2 1 for a START while one is open; the installed definitions and their order are stated by whoever runs the task; a short value is padded with blanks; the areas are left alone on any condition other than NORMAL) and WRITE OPERATOR (TEXT only; recorded as a WRITE-OPERATOR event); the direct form INQUIRE URIMAP(name), every other URIMAP attribute, a NEXT / END with no browse, and a console text IBM reformats (DFHnnnn / DFHaannnn, or over 113 characters) refused | ASSUMED (REFUSED where IBM is silent) | yes (cics-crucible gt-urimap-browse, unreleased) | | L1 | LE | CEEDAYS: documented pictures only | MATCHED / REFUSED | yes | | L2 | LE | CEE3ABD abend codes | MATCHED | yes | -| L3 | LE | WORKING-STORAGE with no VALUE clause: GnuCOBOL's spaces vs LE's STORAGE option on z/OS | ASSUMED | yes (CardDemo READACCT OUTFILE, 2 bytes) | +| L3 | LE | WORKING-STORAGE with no VALUE clause: GnuCOBOL's spaces vs LE's STORAGE option on z/OS | ASSUMED | yes (CardDemo READACCT OUTFILE, 2 bytes; CBSA CRDTAGY1-5 container-short, WS-CONT-IN past a short container) | | A1 | assembler | CardDemo's COBDATFT, translated instruction for instruction; load-module-dependent paths refused | MATCHED / REFUSED | yes (CardDemo READACCT) | | Q1 | Db2 | Db2 for Linux runs the SQL, not Db2 for z/OS | ASSUMED | yes | | Q2 | Db2 | EXEC SQL keeps RETURN-CODE | ASSUMED | yes | @@ -1639,7 +1639,12 @@ The length READQ TS returns on ITEMERR or QIDERR is not documented, so it is not - **Where it shows.** CBACT01C moves the 10-byte `CODATECN-0UT-DATE` to `OUT-ACCT-REISSUE-DATE`, but COBDATFT (A1) writes only its first 8 bytes and `CODATECN-REC` has no VALUE clause. The last 2 bytes of each OUTFILE record's reissue date are GnuCOBOL's spaces, and the Java side writes the same. -- **Assumed** to be spaces. A z/OS run with STORAGE(00) would give X'0000' there. +- **Where it shows (CBSA, #4270).** CRDTAGY1-5's `WS-CONT-IN` (261 bytes, no VALUE clause) is filled by GET CONTAINER + INTO; a container shorter than 261 bytes (scenario `container-short`) leaves the rest as it started, and PUT + CONTAINER writes all 261 bytes back: GnuCOBOL's spaces in the alphanumeric items and its zeros in the unsigned + numeric DISPLAY items (date of birth, review date), the same bytes on the Java side. +- **Assumed** to be spaces (zeros for a numeric DISPLAY item, as GnuCOBOL initialises it). A z/OS run with + STORAGE(00) would give X'0000' there. ## Assembler routines diff --git a/docs/language_status/register/C12.md b/docs/language_status/register/C12.md index 47fb4eec6..f13dae3a7 100644 --- a/docs/language_status/register/C12.md +++ b/docs/language_status/register/C12.md @@ -5,7 +5,7 @@ status: "DIFFERS (the numbers) / ASSUMED (the interface)" title: "FUNCTION RANDOM — the numbers DIFFER from z/OS, the interface ASSUMED; refused where IBM does not allow the seed" area: "compiler" summary: "FUNCTION RANDOM: the oracle's generator (glibc via GnuCOBOL), not IBM's unpublished one; a seed IBM does not allow refused" -reached: "translated, no proof yet (CBSA CRDTAGY1-5, INQCUST; GenApp LGICVS01)" +reached: "yes (CBSA CRDTAGY1-5, INQCUST: cbsa-crdtagy1..5, cbsa-inqcust, seeds 0 and a stated `\"taskn\"`); translated, no proof yet (GenApp LGICVS01)" --- - **IBM** (Enterprise COBOL 6.4 Language Reference, RANDOM, https://www.ibm.com/docs/en/cobol-zos/6.4.0?topic=functions-random): argument-1, if given, "must be zero or a diff --git a/docs/language_status/register/L3.md b/docs/language_status/register/L3.md index 830604635..f588ef4b9 100644 --- a/docs/language_status/register/L3.md +++ b/docs/language_status/register/L3.md @@ -5,11 +5,16 @@ status: "ASSUMED" title: "WORKING-STORAGE with no VALUE clause — ASSUMED" area: "LE" summary: "WORKING-STORAGE with no VALUE clause: GnuCOBOL's spaces vs LE's STORAGE option on z/OS" -reached: "yes (CardDemo READACCT OUTFILE, 2 bytes)" +reached: "yes (CardDemo READACCT OUTFILE, 2 bytes; CBSA CRDTAGY1-5 container-short, WS-CONT-IN past a short container)" --- - **What.** GnuCOBOL initialises such an alphanumeric item to spaces. On z/OS its first contents follow the LE runtime option STORAGE (commonly binary zeros, or whatever the storage held): the program's source does not say. - **Where it shows.** CBACT01C moves the 10-byte `CODATECN-0UT-DATE` to `OUT-ACCT-REISSUE-DATE`, but COBDATFT (A1) writes only its first 8 bytes and `CODATECN-REC` has no VALUE clause. The last 2 bytes of each OUTFILE record's reissue date are GnuCOBOL's spaces, and the Java side writes the same. -- **Assumed** to be spaces. A z/OS run with STORAGE(00) would give X'0000' there. +- **Where it shows (CBSA, #4270).** CRDTAGY1-5's `WS-CONT-IN` (261 bytes, no VALUE clause) is filled by GET CONTAINER + INTO; a container shorter than 261 bytes (scenario `container-short`) leaves the rest as it started, and PUT + CONTAINER writes all 261 bytes back: GnuCOBOL's spaces in the alphanumeric items and its zeros in the unsigned + numeric DISPLAY items (date of birth, review date), the same bytes on the Java side. +- **Assumed** to be spaces (zeros for a numeric DISPLAY item, as GnuCOBOL initialises it). A z/OS run with + STORAGE(00) would give X'0000' there. diff --git a/docs/language_status/register/Q3.md b/docs/language_status/register/Q3.md index 52401cf18..139c03a76 100644 --- a/docs/language_status/register/Q3.md +++ b/docs/language_status/register/Q3.md @@ -11,6 +11,13 @@ reached: "CICS: yes (CBSA XFRFUN); batch: yes (synthetic UOWDEMO, `tests/equival the task ends, rolled back with the task's recoverable files by SYNCPOINT ROLLBACK or an abend (X3). The transaction is the harness's (`equivalence_cics.py`, a `TransactionTemplate` around the task); a deployment must give each task the same unit of work. Reached: CBSA XFRFUN's four ROLLBACK paths are proven. +- **CICS, SQL after a SYNCPOINT ROLLBACK (#4270).** IBM: SYNCPOINT ROLLBACK ends the unit of work and the task's next + recoverable change starts a new one, committed when the task ends. The Java side rolls the task's Db2 connection back + at the SYNCPOINT ROLLBACK and goes on in the same transaction, so the SQL that follows is committed with the task, as + the COBOL side's Db2 commits it. Reached: CBSA INQACCCU's cursor failing inside CREACC's task (its SYNCPOINT + ROLLBACK, then CREACC's CONTROL updates and INSERTs: cbsa-creacc, cbsa-bnk1cac). A recoverable FILE changed after a + SYNCPOINT ROLLBACK is still undone with the task on the Java side (the transaction is marked rollback-only): no case + reaches one, and it would show as a difference. - **CICS, EXEC SQL COMMIT / ROLLBACK.** IBM: both are invalid under CICS -- Db2 for z/OS answers -925 / -926 (SQLSTATE 2D521; Db2 for z/OS Codes) and the task's unit of work is CICS's (SYNCPOINT). The det translator REFUSES a CICS program's ROLLBACK by name. A CICS program's COMMIT stays a reset of the SQLCA on the Java side and a real commit on diff --git a/docs/language_status/register/X24.md b/docs/language_status/register/X24.md index b7a8b4c24..b2b0e7188 100644 --- a/docs/language_status/register/X24.md +++ b/docs/language_status/register/X24.md @@ -5,7 +5,7 @@ status: "ASSUMED" title: "A task started with a channel; the containers it leaves compared — ASSUMED (#4270)" area: "CICS" summary: "A task started with a channel (a scenario's `channel`: what a RUN TRANSID CHANNEL parent or a LINK CHANNEL caller passed), made its first program's current channel; the containers left on that channel compared at the task's end (dropped on an abend), byte for byte; RUN TRANSID children not run" -reached: "yes (async credit-card CRDTCHK, CSSTATS2, CSSTATUS, GETADDR, GETNAME)" +reached: "yes (async credit-card CRDTCHK, CSSTATS2, CSSTATUS, GETADDR, GETNAME; CBSA CRDTAGY1-5, an explicit CHANNEL(CIPCREDCHANN))" --- - **What IBM documents** (CICS TS 6.x, "Scope of a channel"; RUN TRANSID CHANNEL: "the name of the channel that is to be passed to the child task"; FETCH CHILD CHANNEL: "the channel returned by the child task"; LINK CHANNEL: the diff --git a/docs/language_status/register/X26.md b/docs/language_status/register/X26.md index 18fdb3fa7..def502110 100644 --- a/docs/language_status/register/X26.md +++ b/docs/language_status/register/X26.md @@ -5,7 +5,7 @@ status: "ASSUMED (REFUSED where IBM is silent)" title: "BIF DEEDIT, INQUIRE / SET TERMINAL UCTRANST, DFHVALUE — ASSUMED, REFUSED where IBM is silent (#4415 slice 1)" area: "CICS" summary: "BIF DEEDIT FIELD [LENGTH] edited in place in the region's EBCDIC page (CCSID 037); INQUIRE / SET TERMINAL UCTRANST as the CVDAs UCTRAN 450 / NOUCTRAN 451 / TRANIDONLY 452, the terminal's value stated by the run (the case TYPETERM's UCTRAN), a terminal RECEIVE after a SET refused; DFHVALUE(name) in the stub's programs is IBM's CVDA number; a DEEDIT field with no digit left, beyond 7-bit ASCII or past LENGTH, and the UCTRANST of a terminal other than the task's, refused" -reached: "yes (cics-crucible hc-deedit-uctranst, unreleased)" +reached: "yes (cics-crucible hc-deedit-uctranst, unreleased; CBSA BNK1DCS's UCTRANST store / restore and the BNK1 screens' DEEDIT: cbsa-bnk1dcs, cbsa-bnk1cac ...)" --- - **BIF DEEDIT** (CICS TS 6.x, EXEC CICS BIF DEEDIT, https://www.ibm.com/docs/en/cics-ts/6.x?topic=summary-bif-deedit). "alphabetic and special characters are removed from an EBCDIC data field", "the remaining digits right-aligned and diff --git a/docs/language_status/register/X27.md b/docs/language_status/register/X27.md index ccbd9c0db..efd390648 100644 --- a/docs/language_status/register/X27.md +++ b/docs/language_status/register/X27.md @@ -5,7 +5,7 @@ status: "ASSUMED (the STARTCODE; REFUSED where IBM is silent)" title: "RETURN ... IMMEDIATE, LINK ... SYNCONRETURN — ASSUMED, REFUSED where IBM is silent (#4270 slice)" area: "CICS" summary: "RETURN TRANSID ... IMMEDIATE: the task of TRANSID attached at once with the COMMAREA, ahead of any terminal input and any START request, the terminal's next operator step left alone; its EIBAID is not stated by IBM (the crucible runner gives none and a case never reads it), its STARTCODE TD; INVREQ RESP2 1 (no terminal), INVREQ RESP2 2 (below the highest level), LENGERR RESP2 11 return to the program; LINK ... SYNCONRETURN accepted and ignored (IBM: \"ignored if the link is local\"); IMMEDIATE without TRANSID, and both INVREQs at once (no terminal below level 1), refused" -reached: "yes (cics-crucible pc-return-immediate, unreleased)" +reached: "yes (cics-crucible pc-return-immediate, unreleased; CBSA BNKMENU and the BNK1 screens' PF3, the task's terminal a case's `\"termid\"`: cbsa-bnkmenu, cbsa-bnk1cac ...)" --- - **RETURN IMMEDIATE** (CICS TS 6.x, EXEC CICS RETURN, https://www.ibm.com/docs/en/cics-ts/6.x?topic=summary-return). IMMEDIATE "ensures that the transaction specified in the TRANSID option is attached as the next transaction regardless diff --git a/docs/language_status/register/X29.md b/docs/language_status/register/X29.md index e89e5c9f5..dc6b5c162 100644 --- a/docs/language_status/register/X29.md +++ b/docs/language_status/register/X29.md @@ -5,7 +5,7 @@ status: "ASSUMED (REFUSED where IBM is silent)" title: "INQUIRE ASSOCIATION, DELETEQ TS, QUERY COUNTER, RECEIVE MAP TERMINAL — ASSUMED, REFUSED where IBM is silent (#4415 slice 2)" area: "CICS" summary: "INQUIRE ASSOCIATION(EIBTASKN) ODAPPLID / ODUSERID / ODFACILNAME / ODNETWORKID / ODFACILTYPE: the task's own origin data, the five values the run states (a case's `origin`, for a task terminal input started; unstated, refused), the facility type as IBM's CVDA, a command with no origin option refused (INVREQ RESP2 2 is ambiguous); DELETEQ TS: the whole queue and its READQ NEXT position, QIDERR, INVREQ for a name of binary zeros, RESP2 0; QUERY COUNTER (COUNTER / POOL / VALUE): the value left unchanged, INVREQ RESP2 201 for a counter that is not there, a value beyond a fullword, MINIMUM / MAXIMUM / NOSUSPEND, a task number other than EIBTASKN and the origin of a task not started by terminal input refused; RECEIVE MAP ... TERMINAL: the task's terminal, as every RECEIVE MAP" -reached: "INQUIRE ASSOCIATION, DELETEQ TS, RECEIVE MAP TERMINAL: yes (cics-crucible hc-inquire-deleteq, unreleased); QUERY COUNTER: no (the reference region has no named counters; unit tests on both runtimes)" +reached: "INQUIRE ASSOCIATION, DELETEQ TS, RECEIVE MAP TERMINAL: yes (cics-crucible hc-inquire-deleteq, unreleased; INQUIRE ASSOCIATION and RECEIVE MAP TERMINAL also CBSA BNK1CRA / BNK1DCS: cbsa-bnk1cra, cbsa-bnk1dcs, a case's `\"origin\"`); QUERY COUNTER: no (the reference region has no named counters; unit tests on both runtimes)" --- - **INQUIRE ASSOCIATION** (CICS TS 6.x, CICS SPI command INQUIRE ASSOCIATION, https://www.ibm.com/docs/en/cics-ts/6.x?topic=commands-inquire-association). ASSOCIATION "Specifies the 4-byte number of the diff --git a/tests/equivalence/cbsa-acctctrl/LICENSE b/tests/equivalence/cbsa-acctctrl/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-acctctrl/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-acctctrl/NOTICE b/tests/equivalence/cbsa-acctctrl/NOTICE new file mode 100644 index 000000000..5472f8ee2 --- /dev/null +++ b/tests/equivalence/cbsa-acctctrl/NOTICE @@ -0,0 +1,13 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/ACCTCTRL.cbl, +its copybooks (ACCTCTRL, SORTCODE, ABNDINFO) and the table's DDL +(etc/install/base/db2jcl/CRETB01.jcl, CREI101.jcl) are CBSA's, used unmodified +from the corpus. + +seed.sql in this directory is synthetic test data written for these cases in +the layout of CBSA's ACCOUNT table; it is not CBSA data. The scenarios in +case.json are written for this case. diff --git a/tests/equivalence/cbsa-acctctrl/case.json b/tests/equivalence/cbsa-acctctrl/case.json new file mode 100644 index 000000000..45c95884f --- /dev/null +++ b/tests/equivalence/cbsa-acctctrl/case.json @@ -0,0 +1,70 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "ACCTCTRL", + "program_source": "src/base/cobol_src/ACCTCTRL.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCAC", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "db2": { + "ddl": [ + "etc/install/base/db2jcl/CRETB01.jcl", + "etc/install/base/db2jcl/CREI101.jcl" + ], + "seed": "@case/seed.sql", + "compare": [ + "IBMUSER.ACCOUNT" + ], + "qualifier": "IBMUSER" + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_copy/ACCTCTRL.cpy", + "record": "ACCOUNT-CONTROL-RECORD" + } + ] + }, + "linked": true, + "screens": {}, + "scenarios": [ + { + "name": "count-accounts", + "commarea": {}, + "why": "SELECT COUNT(*) FROM ACCOUNT WHERE ACCOUNT_SORTCODE = '987654' (the program's own sort code): SQLCODE 0 -- 'Y' and NUMBER-OF-ACCOUNTS 13 (the seed's 987654 rows; the 123456 one is not counted)" + }, + { + "name": "caller-data-initialised", + "commarea": { + "ACCOUNT-CONTROL-EYE-CATCHER": "XXXX", + "ACCOUNT-CONTROL-SORT-CODE": "123456", + "ACCOUNT-CONTROL-NUMBER": "99", + "NUMBER-OF-ACCOUNTS": "99999999", + "LAST-ACCOUNT-NUMBER": "12345678", + "ACCOUNT-CONTROL-SUCCESS-FLAG": "N", + "ACCOUNT-CONTROL-FAIL-CODE": "9" + }, + "why": "a COMMAREA full of the caller's values: INITIALIZE DFHCOMMAREA blanks / zeroes the named items (not the FILLERs), then the count and 'Y'" + }, + { + "name": "select-fails", + "commarea": {}, + "sql_faults": [ + { + "program": "ACCTCTRL", + "table": "ACCOUNT", + "verb": "SELECT", + "sqlcode": -913 + } + ], + "why": "the SELECT fails -913: 'N', NUMBER-OF-ACCOUNTS left at the INITIALIZE's zero (FAIL-CODE not set)" + } + ], + "notes": "CBSA's account-control service (ACCTCTRL; no program in the corpus LINKs it -- the transaction OCAC is the create-account one, which the program never reads -- so the COMMAREA is its own DFHCOMMAREA, the ACCTCTRL copybook's ACCOUNT-CONTROL-RECORD). It INITIALIZEs the COMMAREA and counts the ACCOUNT rows of the program's own sort code (987654) with SELECT COUNT(*) INTO from Db2 (unqualified: the bind's QUALIFIER, IBMUSER); SQLCODE 0 gives 'Y' and the count in NUMBER-OF-ACCOUNTS, any other 'N'. POPULATE-TIME-DATE is never PERFORMed (dead code). The table is compared after every scenario. Data: seed.sql is cbsa-creacc's (SYNTHETIC; CONTROL rows left out: only ACCOUNT is created). Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-acctctrl/seed.sql b/tests/equivalence/cbsa-acctctrl/seed.sql new file mode 100644 index 000000000..9714938cd --- /dev/null +++ b/tests/equivalence/cbsa-acctctrl/seed.sql @@ -0,0 +1,15 @@ +INSERT INTO IBMUSER.ACCOUNT VALUES + ('ACCT','0000000001','987654','00000001','CURRENT ', 0.00,'2019-03-15', 500,'2026-08-01','2026-09-01', 1234.56, 1200.00), + ('ACCT','0000000001','987654','00000002','SAVING ', 2.50,'2020-01-31', 0,'2026-08-01','2026-09-01', 98765.43, 98765.43), + ('ACCT','0000000001','123456','00000099','CURRENT ', 0.00,'2017-05-05', 100,'2026-08-01','2026-09-01', 50.00, 50.00), + ('ACCT','0000000002','987654','00000003','LOAN ', 17.90,'2018-12-01', 0,'2026-07-15','2026-08-15', -4500.00, -4500.00), + ('ACCT','0000000002','987654','00000004','MORTGAGE', 4.25,'2018-12-01', 0,'2026-07-15','2026-08-15', -150000.00, -150000.00), + ('ACCT','0000000002','987654','00000005','ISA ', 3.10,'2018-12-01', 0,'2026-07-15','2026-08-15', 10.00, 10.00), + ('ACCT','0000000002','987654','00000006','CURRENT ', 0.00,'2018-12-01', 2500,'2026-07-15','2026-08-15', 9999999999.99, 9999999999.99), + ('ACCT','0000000002','987654','00000007','CURRENT ', 0.00,'2018-12-01', 1000,'2026-07-15','2026-08-15', -9999999999.99, -9999999999.99), + ('ACCT','0000000002','987654','00000008','SAVING ', 1.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 100.00, 100.00), + ('ACCT','0000000002','987654','00000009','SAVING ', 1.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 0.00, 0.00), + ('ACCT','0000000002','987654','00000010','CURRENT ', 0.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 0.01, 0.01), + ('ACCT','0000000002','987654','00000011','CURRENT ', 0.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 77.70, 77.70), + ('ACCT','0000000002','987654','00000012','ISA ', 2.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 5.00, 5.00), + ('ACCT','0000000004','987654','00000013','CURRENT ', 0.00,'2021-06-30', 0, NULL, '2026-10-30', 10.00, 10.00); diff --git a/tests/equivalence/cbsa-bnk1cac/LICENSE b/tests/equivalence/cbsa-bnk1cac/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cac/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-bnk1cac/NOTICE b/tests/equivalence/cbsa-bnk1cac/NOTICE new file mode 100644 index 000000000..add336532 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cac/NOTICE @@ -0,0 +1,16 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The programs under test -- src/base/cobol_src/BNK1CAC.cbl +and the programs it LINKs in the task, CREACC.cbl, INQCUST.cbl, INQACCCU.cbl +and ABNDPROC.cbl -- their copybooks, the BMS mapset its symbolic map is +generated from (src/base/bms_src/BNK1CAM.bms) and the tables' DDL +(etc/install/base/db2jcl/CRETB01.jcl, CREI101.jcl, CRETB02.jcl, CRETB03.jcl, +CREI301.jcl) are CBSA's, used unmodified from the corpus. + +seed.sql and customer.txt in this directory are synthetic test data written +for these cases in the layout of CBSA's ACCOUNT, PROCTRAN and CONTROL tables +and CUSTOMER file; they are not CBSA data. The scenarios in case.json are +written for this case. diff --git a/tests/equivalence/cbsa-bnk1cac/abndfile.bin b/tests/equivalence/cbsa-bnk1cac/abndfile.bin new file mode 100644 index 000000000..e69de29bb diff --git a/tests/equivalence/cbsa-bnk1cac/case.json b/tests/equivalence/cbsa-bnk1cac/case.json new file mode 100644 index 000000000..e50eab3c6 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cac/case.json @@ -0,0 +1,369 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "BNK1CAC", + "program_source": "src/base/cobol_src/BNK1CAC.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCAC", + "termid": "T001", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "taskn": 4242, + "programs": [ + { + "program": "CREACC", + "program_source": "src/base/cobol_src/CREACC.cbl" + }, + { + "program": "INQCUST", + "program_source": "src/base/cobol_src/INQCUST.cbl" + }, + { + "program": "INQACCCU", + "program_source": "src/base/cobol_src/INQACCCU.cbl" + }, + { + "program": "ABNDPROC", + "program_source": "src/base/cobol_src/ABNDPROC.cbl" + } + ], + "datasets": { + "CBSA.CICSBSA.ABNDFILE": { + "input": "@case/abndfile.bin", + "entity": "WsAbndArea", + "copybook": "src/base/cobol_src/ABNDPROC.cbl", + "record": "WS-ABND-AREA", + "recovery": "NONE", + "recovery_why": "etc/install/base/installjcl/BANK.csd: DEFINE FILE(ABNDFILE) ... RECOVERY(NONE) -- the abend log a backout must not undo" + }, + "CBSA.CICSBSA.CUSTOMER": { + "input": "@case/customer.txt", + "entity": "OutputData", + "copybook": "src/base/cobol_copy/CUSTOMER.cpy", + "record": "CUSTOMER-RECORD" + } + }, + "db2": { + "ddl": [ + "etc/install/base/db2jcl/CRETB01.jcl", + "etc/install/base/db2jcl/CREI101.jcl", + "etc/install/base/db2jcl/CRETB02.jcl", + "etc/install/base/db2jcl/CRETB03.jcl", + "etc/install/base/db2jcl/CREI301.jcl" + ], + "seed": "@case/seed.sql", + "compare": [ + "IBMUSER.ACCOUNT", + "IBMUSER.PROCTRAN", + "IBMUSER.CONTROL" + ], + "qualifier": "IBMUSER" + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/BNK1CAC.cbl", + "record": "WS-COMM-AREA" + } + ] + }, + "screens": { + "BNK1CA": { + "copybook": "@bms/BNK1CAM.cpy", + "input": "BNK1CAI", + "output": "BNK1CAO" + } + }, + "scenarios": [ + { + "name": "first-entry", + "aid": "DFHENTER", + "commarea": null, + "why": "EIBCALEN 0: BNK1CAO set to LOW-VALUES, the cursor on CUSTNO, SEND MAP ERASE; RETURN TRANSID('OCAC') with an initialised COMMAREA" + }, + { + "name": "pa1", + "aid": "DFHPA1", + "commarea": {}, + "why": "PA1: CONTINUE, nothing sent; RETURN TRANSID with the COMMAREA" + }, + { + "name": "pf3", + "aid": "DFHPF3", + "commarea": {}, + "why": "PF3: RETURN TRANSID('OMEN') IMMEDIATE: back to the main menu" + }, + { + "name": "pf12", + "aid": "DFHPF12", + "commarea": {}, + "why": "PF12: SEND-TERMINATION-MSG, RETURN" + }, + { + "name": "clear", + "aid": "DFHCLEAR", + "commarea": {}, + "why": "CLEAR: SEND CONTROL ERASE FREEKB, RETURN" + }, + { + "name": "other-key", + "aid": "DFHPF5", + "commarea": {}, + "why": "PF5: WHEN OTHER -- 'Invalid key pressed.', SEND MAP DATAONLY ALARM" + }, + { + "name": "mapfail", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with no field modified: RM010 -- ABNDPROC LINKed (an ABNDFILE record) and ABEND HBNK" + }, + { + "name": "create-current", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "1.5", + "OVERDRI": "00000500" + } + }, + "why": "customer 1, CURRENT, 1.5%, overdraft 00000500: EDIT-DATA passes, NUMVAL into a COMP-1 rate, LINK CREACC (INQCUST, INQACCCU in the task, CONTROL 20 -> 21, INSERT ACCOUNT and PROCTRAN): 'The Account has been successfully created', the new sort code / number / dates shown" + }, + { + "name": "create-isa-lower-case", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000003", + "ACCTYPI": "isa", + "INTRTI": "3.25", + "OVERDRI": "00000000" + } + }, + "why": "customer 3, 'isa' typed in lower case: EDIT-DATA's EVALUATE makes it 'ISA'; rate '3.25', overdraft 00000000" + }, + { + "name": "create-mortgage", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "MORTGAGE", + "INTRTI": "4", + "OVERDRI": "00000000" + } + }, + "why": "MORTGAGE for customer 1, a whole-number rate" + }, + { + "name": "create-loan-mixed", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000003", + "ACCTYPI": "loan", + "INTRTI": "17.75", + "OVERDRI": "00001000" + } + }, + "why": "'loan' with a two-place rate and overdraft 00001000" + }, + { + "name": "create-saving", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000003", + "ACCTYPI": "SAVING", + "INTRTI": "0", + "OVERDRI": "00000000" + } + }, + "why": "'SAVING' with a rate of 0" + }, + { + "name": "customer-deedited", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "1-2", + "ACCTYPI": "CURRENT", + "INTRTI": "1", + "OVERDRI": "00000000" + } + }, + "why": "customer '1-2' (a separator typed): BIF DEEDIT leaves the digits, right-aligned: customer 12 is not on file -- CREACC 'N' / '1'" + }, + { + "name": "type-missing", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "INTRTI": "1" + } + }, + "why": "no account type: 'Account Type should be ISA,CURRENT,LOAN,SAVING or MORTGAGE'" + }, + { + "name": "type-invalid", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CHEQUE", + "INTRTI": "1" + } + }, + "why": "'CHEQUE': WHEN OTHER, the account-type message" + }, + { + "name": "rate-missing", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT" + } + }, + "why": "no interest rate (INTRTL zero): 'Please supply a numeric interest rate'" + }, + { + "name": "rate-letters", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "abc" + } + }, + "why": "rate 'abc': fewer digit / point / sign characters than its length -- the numeric-rate message" + }, + { + "name": "rate-two-points", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "1.2.3" + } + }, + "why": "rate '1.2.3': 'Use one decimal point for interest rate only'" + }, + { + "name": "rate-three-places", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "1.234" + } + }, + "why": "rate '1.234': three digits after the point -- 'Only up to two decimal places are supported'" + }, + { + "name": "rate-negative", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "-1" + } + }, + "why": "rate '-1': NUMVAL below zero -- 'Please supply a zero or positive interest rate'" + }, + { + "name": "rate-too-high", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "10000" + } + }, + "why": "rate '10000': above 9999.99 -- 'Please supply an interest rate less than 9999.99%'" + }, + { + "name": "overdraft-letters", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000001", + "ACCTYPI": "CURRENT", + "INTRTI": "1", + "OVERDRI": "000000ab" + } + }, + "why": "overdraft '000000ab': 'Overdraft Limit must be numeric positive int'" + }, + { + "name": "customer-not-found", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000005", + "ACCTYPI": "CURRENT", + "INTRTI": "1", + "OVERDRI": "00000000" + } + }, + "why": "customer 5 is not on the CUSTOMER file: CREACC 'N' / '1' -- 'The supplied customer number does not exist.'" + }, + { + "name": "too-many-accounts", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "0000000002", + "ACCTYPI": "CURRENT", + "INTRTI": "1", + "OVERDRI": "00000000" + } + }, + "why": "customer 2 has ten accounts: CREACC 'N' / '8' -- '(too many accounts)'" + }, + { + "name": "count-fails", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CA": { + "CUSTNOI": "9999999999", + "ACCTYPI": "SAVING", + "INTRTI": "1", + "OVERDRI": "00000000" + } + }, + "why": "customer 9999999999: INQACCCU does not look that number up, CREACC 'N' / '9' -- 'unable to count accounts'" + } + ], + "notes": "CBSA's create-account screen (BNK1CAC, transaction OCAC, BMS map BNK1CA of mapset BNK1CAM: the symbolic map is generated from src/base/bms_src/BNK1CAM.bms, @bms/BNK1CAM.cpy). Pseudo-conversational: a first task (EIBCALEN 0) sends the empty map; a returning one acts on the AID -- PA keys nothing, PF3 RETURN TRANSID('OMEN') IMMEDIATE (the task's terminal T001 is stated: oracle_assumptions.md X27), PF12 the termination message, CLEAR, ENTER, any other key 'Invalid key pressed.'. ENTER RECEIVEs the map (MAPFAIL abends HBNK through ABNDPROC), BIF DEEDITs the customer number and overdraft, validates the customer number, the account type (upper or lower case), the interest rate (digits, one point, two places, NUMVAL as COMP-1 between 0 and 9999.99) and the overdraft, then LINKs CREACC with SUBPGM-PARMS -- CREACC, INQCUST, INQACCCU and ABNDPROC run in the task, as in cbsa-creacc -- and shows the new account or CREACC's failure. ACCOUNT, PROCTRAN, CONTROL, CUSTOMER and ABNDFILE are compared after every scenario. Every rate typed is exact in both IEEE and HFP (a binary fraction: 1.5, 3.25, 17.75 ...): FUNCTION NUMVAL into the COMP-1 INTRTI-COMP-1 is IBM's long HFP rounded to short in the det port and GnuCOBOL's IEEE float truncated on the MOVE to SUBPGM-INT-RT, which agree only on such values (oracle_assumptions.md C6). The COMMAREA is compared as the program RETURNs it, WS-COMM-AREA (the same 32-byte layout as its DFHCOMMAREA, which it reads back only for EIBCALEN). The overdraft is typed as all eight characters, as over the map's initial underscores: EDIT-DATA trims trailing spaces from its length with FUNCTION REVERSE / INSPECT LEADING, and a shorter typed value makes OVERDRL negative and the next INSPECT's reference modification (1:OVERDRL) undefined. Not reached: a customer number or overdraft with no digit at all (BIF DEEDIT of such a field is not modelled: refused), the failure branches after SEND MAP / SEND TEXT / SEND CONTROL / RETURN / LINK (no fault can be injected on them) and CREACC's fail codes 2-7 that only a Db2 or ENQ failure gives (cbsa-creacc covers them). Data: seed.sql and customer.txt are SYNTHETIC (cbsa-creacc's). Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-bnk1cac/customer.txt b/tests/equivalence/cbsa-bnk1cac/customer.txt new file mode 100644 index 000000000..910f96edf --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cac/customer.txt @@ -0,0 +1,6 @@ +CUST1234560000000001Mr Other Branch Another Sortcode Road 0202198230002022027 +CUST9876540000000001Mr Alan B Smith 12 Station Road, Winchester, SO23 8AB 1103195241201102026 +CUST9876540000000002Mrs Carol D Jones 42 High Street, Romsey, SO51 8AA 0506196069915102026 +CUST9876540000000003Dr Edward F Green 7 Church Lane, Hursley, SO21 2JN 2902196499929022028 +CUST9876540000000004Professor Gail H Brown 1 University Road, Southampton, SO17 1BJ 0101190000031122026 +CUST9876549999999999Ms Highest Number Last Street 3112199950001012027 diff --git a/tests/equivalence/cbsa-bnk1cac/seed.sql b/tests/equivalence/cbsa-bnk1cac/seed.sql new file mode 100644 index 000000000..92bafcfb7 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cac/seed.sql @@ -0,0 +1,21 @@ +INSERT INTO IBMUSER.ACCOUNT VALUES + ('ACCT','0000000001','987654','00000001','CURRENT ', 0.00,'2019-03-15', 500,'2026-08-01','2026-09-01', 1234.56, 1200.00), + ('ACCT','0000000001','987654','00000002','SAVING ', 2.50,'2020-01-31', 0,'2026-08-01','2026-09-01', 98765.43, 98765.43), + ('ACCT','0000000001','123456','00000099','CURRENT ', 0.00,'2017-05-05', 100,'2026-08-01','2026-09-01', 50.00, 50.00), + ('ACCT','0000000002','987654','00000003','LOAN ', 17.90,'2018-12-01', 0,'2026-07-15','2026-08-15', -4500.00, -4500.00), + ('ACCT','0000000002','987654','00000004','MORTGAGE', 4.25,'2018-12-01', 0,'2026-07-15','2026-08-15', -150000.00, -150000.00), + ('ACCT','0000000002','987654','00000005','ISA ', 3.10,'2018-12-01', 0,'2026-07-15','2026-08-15', 10.00, 10.00), + ('ACCT','0000000002','987654','00000006','CURRENT ', 0.00,'2018-12-01', 2500,'2026-07-15','2026-08-15', 9999999999.99, 9999999999.99), + ('ACCT','0000000002','987654','00000007','CURRENT ', 0.00,'2018-12-01', 1000,'2026-07-15','2026-08-15', -9999999999.99, -9999999999.99), + ('ACCT','0000000002','987654','00000008','SAVING ', 1.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 100.00, 100.00), + ('ACCT','0000000002','987654','00000009','SAVING ', 1.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 0.00, 0.00), + ('ACCT','0000000002','987654','00000010','CURRENT ', 0.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 0.01, 0.01), + ('ACCT','0000000002','987654','00000011','CURRENT ', 0.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 77.70, 77.70), + ('ACCT','0000000002','987654','00000012','ISA ', 2.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 5.00, 5.00), + ('ACCT','0000000004','987654','00000013','CURRENT ', 0.00,'2021-06-30', 0, NULL, '2026-10-30', 10.00, 10.00); +INSERT INTO IBMUSER.PROCTRAN VALUES + ('PRTR','987654','00000001','2026-09-30','091500','000000000042','CRE','COUNTER RECVED ', 1000.00); +INSERT INTO IBMUSER.CONTROL VALUES + ('987654-ACCOUNT-LAST ', 20, ' '), + ('987654-ACCOUNT-COUNT ', 13, ' '), + ('123456-ACCOUNT-LAST ', 99, ' '); diff --git a/tests/equivalence/cbsa-bnk1cra/LICENSE b/tests/equivalence/cbsa-bnk1cra/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cra/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-bnk1cra/NOTICE b/tests/equivalence/cbsa-bnk1cra/NOTICE new file mode 100644 index 000000000..a1d37d714 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cra/NOTICE @@ -0,0 +1,15 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The programs under test -- src/base/cobol_src/BNK1CRA.cbl +and the programs it LINKs in the task, DBCRFUN.cbl and ABNDPROC.cbl -- their +copybooks, the BMS mapset its symbolic map is generated from +(src/base/bms_src/BNK1CDM.bms) and the tables' DDL +(etc/install/base/db2jcl/CRETB01.jcl, CREI101.jcl, CRETB02.jcl) are CBSA's, +used unmodified from the corpus. + +seed.sql in this directory is synthetic test data written for these cases in +the layout of CBSA's ACCOUNT and PROCTRAN tables; it is not CBSA data. The +scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-bnk1cra/abndfile.bin b/tests/equivalence/cbsa-bnk1cra/abndfile.bin new file mode 100644 index 000000000..e69de29bb diff --git a/tests/equivalence/cbsa-bnk1cra/case.json b/tests/equivalence/cbsa-bnk1cra/case.json new file mode 100644 index 000000000..6184ce186 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cra/case.json @@ -0,0 +1,324 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "BNK1CRA", + "program_source": "src/base/cobol_src/BNK1CRA.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCRA", + "termid": "T001", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "taskn": 4242, + "programs": [ + { + "program": "DBCRFUN", + "program_source": "src/base/cobol_src/DBCRFUN.cbl" + }, + { + "program": "ABNDPROC", + "program_source": "src/base/cobol_src/ABNDPROC.cbl" + } + ], + "datasets": { + "CBSA.CICSBSA.ABNDFILE": { + "input": "@case/abndfile.bin", + "entity": "WsAbndArea", + "copybook": "src/base/cobol_src/ABNDPROC.cbl", + "record": "WS-ABND-AREA", + "recovery": "NONE", + "recovery_why": "etc/install/base/installjcl/BANK.csd: DEFINE FILE(ABNDFILE) ... RECOVERY(NONE) -- the abend log a backout must not undo" + } + }, + "db2": { + "ddl": [ + "etc/install/base/db2jcl/CRETB01.jcl", + "etc/install/base/db2jcl/CREI101.jcl", + "etc/install/base/db2jcl/CRETB02.jcl" + ], + "seed": "@case/seed.sql", + "compare": [ + "IBMUSER.ACCOUNT", + "IBMUSER.PROCTRAN" + ], + "qualifier": "IBMUSER" + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/BNK1CRA.cbl", + "record": "WS-COMM-AREA" + } + ] + }, + "screens": { + "BNK1CD": { + "copybook": "@bms/BNK1CDM.cpy", + "input": "BNK1CDI", + "output": "BNK1CDO" + } + }, + "origin": { + "applid": "CBSAREGN", + "userid": "CICSUSER", + "facilname": "T001", + "networkid": "CBSANET", + "faciltype": "TERMINAL" + }, + "scenarios": [ + { + "name": "first-entry", + "aid": "DFHENTER", + "commarea": null, + "why": "EIBCALEN 0: the map sent ERASE with the cursor on ACCNO; RETURN TRANSID('OCRA') LENGTH(21)" + }, + { + "name": "pa1", + "aid": "DFHPA1", + "commarea": {}, + "why": "PA1: CONTINUE, nothing sent; RETURN TRANSID with the COMMAREA" + }, + { + "name": "pf3", + "aid": "DFHPF3", + "commarea": {}, + "why": "PF3: RETURN TRANSID('OMEN') IMMEDIATE: back to the main menu" + }, + { + "name": "pf12", + "aid": "DFHPF12", + "commarea": {}, + "why": "PF12: SEND-TERMINATION-MSG, RETURN" + }, + { + "name": "clear", + "aid": "DFHCLEAR", + "commarea": {}, + "why": "CLEAR: SEND CONTROL ERASE FREEKB, RETURN" + }, + { + "name": "other-key", + "aid": "DFHPF5", + "commarea": {}, + "why": "PF5: WHEN OTHER -- 'Invalid key pressed.', SEND MAP DATAONLY ALARM" + }, + { + "name": "mapfail", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with no field modified: RM010 -- ABNDPROC LINKed (an ABNDFILE record) and ABEND HBNK" + }, + { + "name": "credit", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+", + "AMTI": "100.50" + } + }, + "why": "account 1, '+' 100.50: BIF DEEDIT, the amount checked character by character and through FUNCTION NUMVAL into the COMP-2 WS-AMOUNT-AS-FLOAT; INQUIRE ASSOCIATION(EIBTASKN) gives the task's origin data (stated: a TERMINAL facility, so DBCRFUN treats it as a teller transaction), LINK DBCRFUN (run in the task: both balances +100.50, PROCTRAN 'CRE') -- 'Amount successfully applied to the account.', the new balances" + }, + { + "name": "debit", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000002", + "SIGNI": "-", + "AMTI": "50.25" + } + }, + "why": "account 2, '-' 50.25: the float negated (COMPUTE * -1), DBCRFUN debits it (PROCTRAN 'DEB')" + }, + { + "name": "credit-no-sign", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "AMTI": "12" + } + }, + "why": "account 1, no sign typed (SIGNL 0) and '12': a whole amount, NUMERIC at once -- a credit" + }, + { + "name": "payment-debit-insufficient", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000008", + "SIGNI": "-", + "AMTI": "500.50" + } + }, + "why": "a payment (origin facility type NONE: DBCRFUN's 496) debiting 500.50 from account 8, whose available balance is -50: DBCRFUN '3' -- 'Sorry insufficient funds available to process the request.'", + "origin": { + "applid": "CBSAREGN", + "userid": "CICSUSER", + "facilname": "T001", + "networkid": "CBSANET", + "faciltype": "NONE" + } + }, + { + "name": "payment-credit-mortgage", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000004", + "SIGNI": "+", + "AMTI": "10.25" + } + }, + "why": "a payment credit to account 4, a MORTGAGE: DBCRFUN '4' -- the unexpected-error message with the code", + "origin": { + "applid": "CBSAREGN", + "userid": "CICSUSER", + "facilname": "T001", + "networkid": "CBSANET", + "faciltype": "NONE" + } + }, + { + "name": "account-not-found", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000050", + "SIGNI": "+", + "AMTI": "1.5" + } + }, + "why": "account 50: DBCRFUN '1' -- 'Sorry but the ACCOUNT no was not found for SORTCODE 987654 . Amount not applied.'" + }, + { + "name": "account-null-date", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000005", + "SIGNI": "+", + "AMTI": "1.5" + } + }, + "why": "account 5's last-statement date is NULL: DBCRFUN's SELECT -305, '2' -- 'due to an unexpected error.'" + }, + { + "name": "account-zero", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000000", + "SIGNI": "+", + "AMTI": "1" + } + }, + "why": "account 00000000: 'Please enter a non zero account number.'" + }, + { + "name": "bad-sign", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "*", + "AMTI": "1" + } + }, + "why": "sign '*': 'Please enter + or - preceding the amount'" + }, + { + "name": "amount-missing", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+" + } + }, + "why": "no amount (AMTL 0): 'The Amount entered must be numeric.'" + }, + { + "name": "amount-embedded-space", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+", + "AMTI": "1 0" + } + }, + "why": "'1 0': the embedded-spaces message" + }, + { + "name": "amount-letters", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+", + "AMTI": "12a" + } + }, + "why": "'12a': the numeric-amount message" + }, + { + "name": "amount-two-points", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+", + "AMTI": "1.2.5" + } + }, + "why": "'1.2.5': one decimal point only" + }, + { + "name": "amount-three-places", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+", + "AMTI": "1.125" + } + }, + "why": "'1.125': up to two decimal places" + }, + { + "name": "amount-leading-spaces", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1CD": { + "ACCNOI": "00000001", + "SIGNI": "+", + "AMTI": " 12.75" + } + }, + "why": "' 12.75': UNSTRING from the first non-space, then credited" + } + ], + "notes": "CBSA's credit / debit screen (BNK1CRA, transaction OCRA, BMS map BNK1CD of mapset BNK1CDM: the symbolic map is generated from src/base/bms_src/BNK1CDM.bms, @bms/BNK1CDM.cpy). Pseudo-conversational, as every CBSA screen (PF3 RETURN TRANSID('OMEN') IMMEDIATE from the stated terminal T001, oracle_assumptions.md X27). ENTER RECEIVEs the map (MAPFAIL abends HBNK through ABNDPROC), BIF DEEDITs the account number, checks it is not zero and the sign is + or -, validates the amount character by character and converts it with FUNCTION NUMVAL into the COMP-2 WS-AMOUNT-AS-FLOAT (negated for '-'), then INQUIREs its own ASSOCIATION for the origin data and LINKs DBCRFUN with SUBPGM-PARMS (run in the task, as in cbsa-dbcrfun). The task's origin data is a stated fact of the run (oracle_assumptions.md X29): APPLID CBSAREGN, user CICSUSER, facility T001, network CBSANET, facility type TERMINAL (a teller transaction to DBCRFUN), or NONE (DBCRFUN's 496, a payment) where a scenario says so. Every amount that reaches NUMVAL is exact in both IEEE and HFP (100.50, 50.25, 12.75, 1.5 ...): IBM's long HFP and the oracle's IEEE agree only on such values (oracle_assumptions.md C6). The COMMAREA compared is the one the program RETURNs, WS-COMM-AREA. ACCOUNT, PROCTRAN and ABNDFILE are compared after every scenario. Not reached: an account number with no digit after BIF DEEDIT (not modelled: refused) and the failure branches after SEND MAP / SEND TEXT / SEND CONTROL / RETURN / LINK / INQUIRE (no fault can be injected on them). Data: seed.sql is cbsa-dbcrfun's (SYNTHETIC). Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-bnk1cra/seed.sql b/tests/equivalence/cbsa-bnk1cra/seed.sql new file mode 100644 index 000000000..cb4cc76e8 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1cra/seed.sql @@ -0,0 +1,13 @@ +INSERT INTO IBMUSER.ACCOUNT VALUES + ('ACCT','0000000001','987654','00000001','CURRENT ', 0.00,'2019-03-15', 500,'2026-08-01','2026-09-01', 1000.00, 1000.00), + ('ACCT','0000000001','987654','00000002','SAVING ', 2.50,'2020-01-31', 0,'2026-08-01','2026-09-01', 250.00, 250.00), + ('ACCT','0000000002','987654','00000003','LOAN ',17.90,'2018-12-01', 0,'2026-07-15','2026-08-15', -4500.00, -4500.00), + ('ACCT','0000000002','987654','00000004','MORTGAGE', 4.25,'2015-02-28', 0,'2026-08-28','2026-09-28', -150000.00, -150000.00), + ('ACCT','0000000003','987654','00000005','ISA ', 3.10,'2021-06-30', 0, NULL, '2026-10-30', 10.00, 10.00), + ('ACCT','0000000004','987654','00000006','CURRENT ', 0.00,'2024-02-29',2500,'2026-08-31','2026-09-30', 9999999999.99, 9999999999.99), + ('ACCT','0000000004','987654','00000007','CURRENT ', 0.00,'2022-11-11',1000,'2026-08-31','2026-09-30', 0.00, 0.00), + ('ACCT','0000000005','987654','00000008','CURRENT ', 0.00,'2023-04-01', 100,'2026-08-31','2026-09-30', -50.00, -50.00), + ('ACCT','0000000005','987654','00000009','CURRENT ', 0.00,'2023-04-02', 0,'2026-08-31','2026-09-30', 100.00, 150.00), + ('ACCT','0000000006','123456','00000010','CURRENT ', 0.00,'2017-05-05', 100,'2026-08-01','2026-09-01', 50.00, 50.00); +INSERT INTO IBMUSER.PROCTRAN VALUES + ('PRTR','987654','00000001','2026-09-30','091500','000000000042','CRE','COUNTER RECVED ', 1000.00); diff --git a/tests/equivalence/cbsa-bnk1dac/LICENSE b/tests/equivalence/cbsa-bnk1dac/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dac/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-bnk1dac/NOTICE b/tests/equivalence/cbsa-bnk1dac/NOTICE new file mode 100644 index 000000000..1e66b45e1 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dac/NOTICE @@ -0,0 +1,15 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The programs under test -- src/base/cobol_src/BNK1DAC.cbl +and the programs it LINKs in the task, INQACC.cbl, DELACC.cbl and ABNDPROC.cbl +-- their copybooks, the BMS mapset its symbolic map is generated from +(src/base/bms_src/BNK1DAM.bms) and the tables' DDL +(etc/install/base/db2jcl/CRETB01.jcl, CREI101.jcl, CRETB02.jcl) are CBSA's, +used unmodified from the corpus. + +seed.sql in this directory is synthetic test data written for these cases in +the layout of CBSA's ACCOUNT and PROCTRAN tables; it is not CBSA data. The +scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-bnk1dac/abndfile.bin b/tests/equivalence/cbsa-bnk1dac/abndfile.bin new file mode 100644 index 000000000..e69de29bb diff --git a/tests/equivalence/cbsa-bnk1dac/case.json b/tests/equivalence/cbsa-bnk1dac/case.json new file mode 100644 index 000000000..049bbb5ec --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dac/case.json @@ -0,0 +1,244 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "BNK1DAC", + "program_source": "src/base/cobol_src/BNK1DAC.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "ODAC", + "termid": "T001", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "taskn": 4242, + "programs": [ + { + "program": "INQACC", + "program_source": "src/base/cobol_src/INQACC.cbl" + }, + { + "program": "DELACC", + "program_source": "src/base/cobol_src/DELACC.cbl" + }, + { + "program": "ABNDPROC", + "program_source": "src/base/cobol_src/ABNDPROC.cbl" + } + ], + "datasets": { + "CBSA.CICSBSA.ABNDFILE": { + "input": "@case/abndfile.bin", + "entity": "WsAbndArea", + "copybook": "src/base/cobol_src/ABNDPROC.cbl", + "record": "WS-ABND-AREA", + "recovery": "NONE", + "recovery_why": "etc/install/base/installjcl/BANK.csd: DEFINE FILE(ABNDFILE) ... RECOVERY(NONE) -- the abend log a backout must not undo" + } + }, + "db2": { + "ddl": [ + "etc/install/base/db2jcl/CRETB01.jcl", + "etc/install/base/db2jcl/CREI101.jcl", + "etc/install/base/db2jcl/CRETB02.jcl" + ], + "seed": "@case/seed.sql", + "compare": [ + "IBMUSER.ACCOUNT", + "IBMUSER.PROCTRAN" + ], + "qualifier": "IBMUSER" + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/BNK1DAC.cbl", + "record": "WS-COMM-AREA" + } + ] + }, + "screens": { + "BNK1DA": { + "copybook": "@bms/BNK1DAM.cpy", + "input": "BNK1DAI", + "output": "BNK1DAO" + } + }, + "scenarios": [ + { + "name": "first-entry", + "aid": "DFHENTER", + "commarea": null, + "why": "EIBCALEN 0: WS-COMM-AREA initialised, the map sent ERASE with the cursor on ACCNO; RETURN TRANSID('ODAC') LENGTH(102)" + }, + { + "name": "pa1", + "aid": "DFHPA1", + "commarea": {}, + "why": "PA1: CONTINUE, nothing sent; RETURN TRANSID with the COMMAREA" + }, + { + "name": "pf3", + "aid": "DFHPF3", + "commarea": {}, + "why": "PF3: RETURN TRANSID('OMEN') IMMEDIATE: back to the main menu" + }, + { + "name": "pf12", + "aid": "DFHPF12", + "commarea": {}, + "why": "PF12: SEND-TERMINATION-MSG, RETURN" + }, + { + "name": "clear", + "aid": "DFHCLEAR", + "commarea": {}, + "why": "CLEAR: SEND CONTROL ERASE FREEKB, RETURN" + }, + { + "name": "mapfail", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with no field modified: RM010 -- ABNDPROC LINKed (an ABNDFILE record) and ABEND HBNK" + }, + { + "name": "other-key", + "aid": "DFHPF7", + "commarea": {}, + "why": "PF7: WHEN OTHER -- 'Invalid key pressed.', SEND MAP DATAONLY ALARM (PF5 is this screen's delete key)" + }, + { + "name": "inquire", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with account 1: BIF DEEDIT, LINK INQACC (run in the task) with the program's own INQACC-COMMAREA, the account shown and 'If you wish to delete the Account press .'; the inquiry's fields go back in WS-COMM-AREA (INQACC-EYE 'ACCT')", + "receive": { + "BNK1DA": { + "ACCNOI": "00000001" + } + } + }, + { + "name": "inquire-mortgage", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with account 5, a MORTGAGE with a negative balance", + "receive": { + "BNK1DA": { + "ACCNOI": "00000005" + } + } + }, + { + "name": "inquire-not-found", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with account 50: INQACC 'N', type blank, rate 0 -- 'Sorry, but that account number was not found.', the fields blanked; WS-COMM-AREA initialised (INQACC-EYE not 'ACCT')", + "receive": { + "BNK1DA": { + "ACCNOI": "00000050" + } + } + }, + { + "name": "inquire-no-account", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with ACCNO left empty (ACCNOL 0): 'Please enter an account number.', no DEEDIT, no LINK; PARMS-SUBPGM initialised", + "receive": { + "BNK1DA": { + "COMPANYI": "CBSA" + } + } + }, + { + "name": "inquire-deedited", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with '0000-002': BIF DEEDIT leaves 00000002, account 2 is shown", + "receive": { + "BNK1DA": { + "ACCNOI": "0000-002" + } + } + }, + { + "name": "delete", + "aid": "DFHPF5", + "commarea": { + "WS-COMM-EYE": "ACCT", + "WS-COMM-SCODE": "987654", + "WS-COMM-ACCNO": "2", + "WS-COMM-CUSTNO": "0000000001" + }, + "why": "PF5 after an inquiry of account 2 (the COMMAREA carries its sort code and number): VALIDATE-DATA passes, ACCNO2 through NUMVAL (fixed point), LINK DELACC with PARMS-SUBPGM (run in the task: the ACCOUNT row deleted, a PROCTRAN 'ODA' row) -- 'The account ... was successfully deleted.', the fields blanked", + "receive": { + "BNK1DA": { + "ACCNO2I": "00000002" + } + } + }, + { + "name": "delete-loan", + "aid": "DFHPF5", + "commarea": { + "WS-COMM-EYE": "ACCT", + "WS-COMM-SCODE": "987654", + "WS-COMM-ACCNO": "3", + "WS-COMM-CUSTNO": "0000000001" + }, + "why": "PF5 deleting account 3, a LOAN", + "receive": { + "BNK1DA": { + "ACCNO2I": "00000003" + } + } + }, + { + "name": "delete-not-found", + "aid": "DFHPF5", + "commarea": { + "WS-COMM-EYE": "ACCT", + "WS-COMM-SCODE": "987654", + "WS-COMM-ACCNO": "50", + "WS-COMM-CUSTNO": "0000000001" + }, + "why": "PF5 for account 50 (gone since the inquiry): DELACC 'N' / '1' -- 'Sorry, but that account number was not found.'", + "receive": { + "BNK1DA": { + "ACCNO2I": "00000050" + } + } + }, + { + "name": "delete-null-statement", + "aid": "DFHPF5", + "commarea": { + "WS-COMM-EYE": "ACCT", + "WS-COMM-SCODE": "987654", + "WS-COMM-ACCNO": "4", + "WS-COMM-CUSTNO": "0000000001" + }, + "why": "PF5 for account 4, whose last-statement date is NULL: DELACC's SELECT fails (-305): DELACC ABENDs HRAC in the task", + "receive": { + "BNK1DA": { + "ACCNO2I": "00000004" + } + } + }, + { + "name": "delete-without-inquiry", + "aid": "DFHPF5", + "commarea": {}, + "why": "PF5 with no inquiry first (the COMMAREA's sort code and account zero): 'Please enter an account number.', no LINK", + "receive": { + "BNK1DA": { + "ACCNO2I": "00000002" + } + } + } + ], + "notes": "CBSA's display / delete-account screen (BNK1DAC, transaction ODAC, BMS map BNK1DA of mapset BNK1DAM: the symbolic map is generated from src/base/bms_src/BNK1DAM.bms, @bms/BNK1DAM.cpy). Pseudo-conversational, as every CBSA screen (PF3 RETURN TRANSID('OMEN') IMMEDIATE from the stated terminal T001, oracle_assumptions.md X27). ENTER inquires (BIF DEEDIT of the account number, LINK INQACC with its INQACC-COMMAREA, the trailing POINTER NULL) and shows the account, keeping it in WS-COMM-AREA; PF5 checks the COMMAREA's sort code and account number from that inquiry and LINKs DELACC with PARMS-SUBPGM (three POINTERs set NULL). INQACC, DELACC and ABNDPROC run in the task, as in cbsa-inqacc / cbsa-delacc. The COMMAREA compared is the one the program RETURNs, WS-COMM-AREA (LENGTH 102); a returning task's COMMAREA is given in that layout (the program's DFHCOMMAREA is the same 102 bytes). ACCOUNT, PROCTRAN and ABNDFILE are compared after every scenario. Not reached: an account number with no digit after BIF DEEDIT (not modelled: refused), DELACC's fail code 2 (code 3, 'a delete error', is reached by an enumerated SQL fault, #4173), and the failure branches after SEND MAP / SEND TEXT / SEND CONTROL / RETURN / LINK (no fault can be injected on them). Data: seed.sql is cbsa-delacc's (SYNTHETIC). Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-bnk1dac/seed.sql b/tests/equivalence/cbsa-bnk1dac/seed.sql new file mode 100644 index 000000000..8a0964876 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dac/seed.sql @@ -0,0 +1,13 @@ +INSERT INTO IBMUSER.ACCOUNT VALUES + ('ACCT','0000000001','987654','00000000','CURRENT ', 0.00,'2016-01-01', 0,'2026-08-01','2026-09-01', 0.00, 0.00), + ('ACCT','0000000001','987654','00000001','CURRENT ', 0.00,'2019-03-15', 500,'2026-08-01','2026-09-01', 1234.56, 1200.00), + ('ACCT','0000000001','987654','00000002','SAVING ', 2.50,'2020-01-31', 0,'2026-08-01','2026-09-01', 98765.43, 98765.43), + ('ACCT','0000000002','987654','00000003','LOAN ',17.90,'2018-12-01', 0,'2026-07-15','2026-08-15', -4500.00, -4500.00), + ('ACCT','0000000003','987654','00000004','ISA ', 3.10,'2021-06-30', 0, NULL, '2026-10-30', 0.00, 0.00), + ('ACCT','0000000004','123456','00000010','CURRENT ', 0.00,'2017-05-05', 100,'2026-08-01','2026-09-01', 50.00, 50.00), + ('ACCT','0000000005','987654','00000005','MORTGAGE', 4.25,'2015-02-28', 0,'2026-08-28','2026-09-28', -150000.00, -150000.00), + ('ACCT','0000000006','987654','00000006','CURRENT ', 9999.99,'2024-02-29',99999999,'2024-02-29','2028-02-29', 9999999999.99, -9999999999.99), + ('ACCT','0000000008','987654','00000011','CURRENT ', 0.00,'2023-04-02',123456789,'2026-12-31','2027-01-01', 0.00, 0.01), + ('ACCT','9999999999','987654','99999999','SAVING ', 1.05,'2001-09-09', 50,'2026-09-15','2026-10-15', 321.09, 300.00); +INSERT INTO IBMUSER.PROCTRAN VALUES + ('PRTR','987654','00000001','2026-09-30','091500','000000000042','CRE','COUNTER RECVED ', 1000.00); diff --git a/tests/equivalence/cbsa-bnk1dcs/LICENSE b/tests/equivalence/cbsa-bnk1dcs/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dcs/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-bnk1dcs/NOTICE b/tests/equivalence/cbsa-bnk1dcs/NOTICE new file mode 100644 index 000000000..6ed0bea15 --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dcs/NOTICE @@ -0,0 +1,14 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The programs under test -- src/base/cobol_src/BNK1DCS.cbl +and the programs it LINKs in the task, INQCUST.cbl, UPDCUST.cbl and +ABNDPROC.cbl -- their copybooks and the BMS mapset its symbolic map is +generated from (src/base/bms_src/BNK1DCM.bms) are CBSA's, used unmodified from +the corpus. + +customer.txt in this directory is synthetic test data written for these cases +in the layout of CBSA's CUSTOMER file; it is not CBSA data. The scenarios in +case.json are written for this case. diff --git a/tests/equivalence/cbsa-bnk1dcs/abndfile.bin b/tests/equivalence/cbsa-bnk1dcs/abndfile.bin new file mode 100644 index 000000000..e69de29bb diff --git a/tests/equivalence/cbsa-bnk1dcs/case.json b/tests/equivalence/cbsa-bnk1dcs/case.json new file mode 100644 index 000000000..da7d21bbe --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dcs/case.json @@ -0,0 +1,414 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "BNK1DCS", + "program_source": "src/base/cobol_src/BNK1DCS.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "ODCS", + "termid": "T001", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "taskn": 4242, + "programs": [ + { + "program": "INQCUST", + "program_source": "src/base/cobol_src/INQCUST.cbl" + }, + { + "program": "UPDCUST", + "program_source": "src/base/cobol_src/UPDCUST.cbl" + }, + { + "program": "ABNDPROC", + "program_source": "src/base/cobol_src/ABNDPROC.cbl" + } + ], + "datasets": { + "CBSA.CICSBSA.ABNDFILE": { + "input": "@case/abndfile.bin", + "entity": "WsAbndArea", + "copybook": "src/base/cobol_src/ABNDPROC.cbl", + "record": "WS-ABND-AREA", + "recovery": "NONE", + "recovery_why": "etc/install/base/installjcl/BANK.csd: DEFINE FILE(ABNDFILE) ... RECOVERY(NONE) -- the abend log a backout must not undo" + }, + "CBSA.CICSBSA.CUSTOMER": { + "input": "@case/customer.txt", + "entity": "OutputData", + "copybook": "src/base/cobol_copy/CUSTOMER.cpy", + "record": "CUSTOMER-RECORD" + } + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/BNK1DCS.cbl", + "record": "WS-COMM-AREA" + } + ] + }, + "screens": { + "BNK1DC": { + "copybook": "@bms/BNK1DCM.cpy", + "input": "BNK1DCI", + "output": "BNK1DCO" + } + }, + "uctranst": "NOUCTRAN", + "scenarios": [ + { + "name": "first-entry", + "aid": "DFHENTER", + "commarea": null, + "uctranst": "UCTRAN", + "why": "EIBCALEN 0 at a terminal with upper-case translation on (UCTRAN): STORE-TERM-DEF INQUIREs UCTRANST, keeps it and SETs NOUCTRAN; the map sent ERASE; RETURN TRANSID('ODCS') LENGTH(266) with the stored CVDA in WS-COMM-TERM" + }, + { + "name": "first-entry-nouctran", + "aid": "DFHENTER", + "commarea": null, + "why": "EIBCALEN 0 at a terminal already NOUCTRAN: nothing SET" + }, + { + "name": "pa1", + "aid": "DFHPA1", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PA1: CONTINUE, nothing sent; the DFHCOMMAREA copied to WS-COMM-AREA, RETURN TRANSID" + }, + { + "name": "pf3", + "aid": "DFHPF3", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF3: RESTORE-TERM-DEF SETs the terminal's UCTRANST back to the COMMAREA's (451, NOUCTRAN), RETURN TRANSID('OMEN') IMMEDIATE" + }, + { + "name": "pf12", + "aid": "DFHPF12", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF12: RESTORE-TERM-DEF, the termination message, RETURN" + }, + { + "name": "clear", + "aid": "DFHCLEAR", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "CLEAR: RESTORE-TERM-DEF, SEND CONTROL ERASE FREEKB, RETURN" + }, + { + "name": "other-key", + "aid": "DFHPF7", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF7: WHEN OTHER -- 'Invalid key pressed.', SEND MAP DATAONLY ALARM" + }, + { + "name": "mapfail", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "ENTER with no field modified: RECEIVE MAP ... TERMINAL ASIS is MAPFAIL -- RM010 LINKs ABNDPROC (an ABNDFILE record), RESTORE-TERM-DEF, ABEND HBNK" + }, + { + "name": "inquire", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "ENTER with customer 1: RECEIVE MAP ... TERMINAL ASIS (lower case kept, X28), BIF DEEDIT, LINK INQCUST (run in the task: READ FILE('CUSTOMER') by the program's own sort code) -- the customer shown, name, address split into three lines, dates and credit score", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000001", + "SORTCI": "987654" + } + } + }, + { + "name": "inquire-professor", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "ENTER with customer 4, a longer name and title", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000004", + "SORTCI": "987654" + } + } + }, + { + "name": "inquire-not-found", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "ENTER with customer 5, not on the CUSTOMER file: INQCUST 'N' -- the not-found message", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000005", + "SORTCI": "987654" + } + } + }, + { + "name": "inquire-no-number", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "ENTER with only the sort code typed (CUSTNOL 0): 'Please enter a customer number.', no LINK", + "receive": { + "BNK1DC": { + "SORTCI": "987654" + } + } + }, + { + "name": "inquire-deedited", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "ENTER with '00-0000001': BIF DEEDIT leaves 0000000001", + "receive": { + "BNK1DC": { + "CUSTNOI": "00-0000001", + "SORTCI": "987654" + } + } + }, + { + "name": "amend", + "aid": "DFHPF10", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF10 on customer 2's screen (every shown field comes back with the RECEIVE): EDIT-DATA and VALIDATE-DATA pass, UNPROT-CUST-DATA keeps the shown customer in the COMMAREA (COMM-UPD 'Y'), the name and address fields unprotected, green and underlined -- 'Amend data then press .'", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000002", + "SORTCI": "987654", + "CUSTNO2I": "0000000002", + "CUSTNAMI": "Mrs Carol D Jones", + "CUSTAD1I": "42 High Street", + "CUSTAD2I": "Romsey", + "CUSTAD3I": "SO51 8AA", + "DOBDDI": "05", + "DOBMMI": "06", + "DOBYYI": "1960", + "CREDSCI": "699", + "SCRDTDDI": "15", + "SCRDTMMI": "10", + "SCRDTYYI": "2026" + } + } + }, + { + "name": "amend-sortcode-zero", + "aid": "DFHPF10", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF10 with sort code 000000: 'The Sort code / Customer number combination is not VALID.'", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000002", + "SORTCI": "000000" + } + } + }, + { + "name": "amend-last-customer", + "aid": "DFHPF10", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF10 with customer 9999999999: 'The customer number is not VALID.'", + "receive": { + "BNK1DC": { + "CUSTNOI": "9999999999", + "SORTCI": "987654" + } + } + }, + { + "name": "delete-customer-zero", + "aid": "DFHPF5", + "commarea": { + "WS-COMM-TERM": 451 + }, + "why": "PF5 with customer 0000000000: VALIDATE-DATA refuses it, no LINK DELCUS", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000000", + "SORTCI": "987654" + } + } + }, + { + "name": "update", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451, + "WS-COMM-EYE": "CUST", + "WS-COMM-SCODE": "987654", + "WS-COMM-CUSTNO": "0000000002", + "WS-COMM-UPDATE": "Y" + }, + "why": "ENTER with COMM-UPD 'Y': EDIT-DATA2 accepts the title 'Mrs' and the address, UPDATE-CUST-DATA LINKs UPDCUST (run in the task: the CUSTOMER record rewritten with the new name and address) -- the success message", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000002", + "SORTCI": "987654", + "CUSTNO2I": "0000000002", + "CUSTNAMI": "Mrs Carol D Jones", + "CUSTAD1I": "42 High Street", + "CUSTAD2I": "Romsey", + "CUSTAD3I": "SO51 8AA", + "DOBDDI": "05", + "DOBMMI": "06", + "DOBYYI": "1960", + "CREDSCI": "699", + "SCRDTDDI": "15", + "SCRDTMMI": "10", + "SCRDTYYI": "2026" + } + } + }, + { + "name": "update-title-dr", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451, + "WS-COMM-EYE": "CUST", + "WS-COMM-SCODE": "987654", + "WS-COMM-CUSTNO": "0000000002", + "WS-COMM-UPDATE": "Y" + }, + "why": "an update with the title 'Dr'", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000002", + "SORTCI": "987654", + "CUSTNO2I": "0000000002", + "CUSTNAMI": "Dr Carol D Jones", + "CUSTAD1I": "42 High Street", + "CUSTAD2I": "Romsey", + "CUSTAD3I": "SO51 8AA", + "DOBDDI": "05", + "DOBMMI": "06", + "DOBYYI": "1960", + "CREDSCI": "699", + "SCRDTDDI": "15", + "SCRDTMMI": "10", + "SCRDTYYI": "2026" + } + } + }, + { + "name": "update-bad-title", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451, + "WS-COMM-EYE": "CUST", + "WS-COMM-SCODE": "987654", + "WS-COMM-CUSTNO": "0000000002", + "WS-COMM-UPDATE": "Y" + }, + "why": "an update titled 'Captain': 'Valid titles are: Mr,Mrs,Miss,Ms,Dr,Professor,...', no LINK", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000002", + "SORTCI": "987654", + "CUSTNO2I": "0000000002", + "CUSTNAMI": "Captain Carol Jones", + "CUSTAD1I": "42 High Street", + "CUSTAD2I": "Romsey", + "CUSTAD3I": "SO51 8AA", + "DOBDDI": "05", + "DOBMMI": "06", + "DOBYYI": "1960", + "CREDSCI": "699", + "SCRDTDDI": "15", + "SCRDTMMI": "10", + "SCRDTYYI": "2026" + } + } + }, + { + "name": "update-blank-address", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451, + "WS-COMM-EYE": "CUST", + "WS-COMM-SCODE": "987654", + "WS-COMM-CUSTNO": "0000000002", + "WS-COMM-UPDATE": "Y" + }, + "why": "an update with all three address lines blank: 'Address must not be all spaces', no LINK", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000002", + "SORTCI": "987654", + "CUSTNO2I": "0000000002", + "CUSTNAMI": "Mrs Carol D Jones", + "CUSTAD1I": " ", + "CUSTAD2I": " ", + "CUSTAD3I": " ", + "DOBDDI": "05", + "DOBMMI": "06", + "DOBYYI": "1960", + "CREDSCI": "699", + "SCRDTDDI": "15", + "SCRDTMMI": "10", + "SCRDTYYI": "2026" + } + } + }, + { + "name": "update-not-found", + "aid": "DFHENTER", + "commarea": { + "WS-COMM-TERM": 451, + "WS-COMM-EYE": "CUST", + "WS-COMM-SCODE": "987654", + "WS-COMM-CUSTNO": "0000000002", + "WS-COMM-UPDATE": "Y" + }, + "why": "an update of customer 5, not on file: UPDCUST 'N' -- its failure message", + "receive": { + "BNK1DC": { + "CUSTNOI": "0000000005", + "SORTCI": "987654", + "CUSTNO2I": "0000000005", + "CUSTNAMI": "Mrs Carol D Jones", + "CUSTAD1I": "42 High Street", + "CUSTAD2I": "Romsey", + "CUSTAD3I": "SO51 8AA", + "DOBDDI": "05", + "DOBMMI": "06", + "DOBYYI": "1960", + "CREDSCI": "699", + "SCRDTDDI": "15", + "SCRDTMMI": "10", + "SCRDTYYI": "2026" + } + } + } + ], + "notes": "CBSA's display / amend / delete-customer screen (BNK1DCS, transaction ODCS, BMS map BNK1DC of mapset BNK1DCM: the symbolic map is generated from src/base/bms_src/BNK1DCM.bms, @bms/BNK1DCM.cpy). Its terminal is a stated fact of the run: T001 (EIBTRMID), UCTRANST NOUCTRAN unless a scenario says UCTRAN (INQUIRE / SET TERMINAL UCTRANST, oracle_assumptions.md X26); a first task stores the terminal's UCTRANST in the COMMAREA and turns translation off, and every exit (PF3 / PF12 / CLEAR, an abend) SETs it back from the COMMAREA (WS-COMM-TERM 451 in every returning scenario). ENTER inquires (LINK INQCUST); PF10 checks the customer and unprotects the name and address for amending (COMM-UPD 'Y'); ENTER with COMM-UPD 'Y' validates the title and address and LINKs UPDCUST; PF5 deletes through DELCUS. INQCUST, UPDCUST and ABNDPROC run in the task, as in cbsa-inqcust / cbsa-updcust. The COMMAREA compared is the one the program RETURNs, WS-COMM-AREA (LENGTH 266). CUSTOMER and ABNDFILE are compared after every scenario. Not reached: a valid PF5 delete -- DELCUS is not translated whole (cics_census: 4 holes), so no scenario LINKs it --; a terminal whose translation is on when a RECEIVE follows the SET (IBM does not say when a SET UCTRANST takes effect: refused by both runtimes, X26), a customer number with no digit after BIF DEEDIT (not modelled), a PF10 whose date / credit-score fields came back empty (UNPROT-CUST-DATA MOVEs the symbolic map's LOW-VALUES through a 9(8) REDEFINES: non-digit data in a numeric MOVE, oracle_assumptions.md C11 -- the scenarios give PF10 the screen's fields as shown), and the failure branches after SEND MAP / SEND TEXT / SEND CONTROL / RETURN / LINK / INQUIRE / SET (no fault can be injected on them). Data: customer.txt is cbsa-updcust's (SYNTHETIC). Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-bnk1dcs/customer.txt b/tests/equivalence/cbsa-bnk1dcs/customer.txt new file mode 100644 index 000000000..910f96edf --- /dev/null +++ b/tests/equivalence/cbsa-bnk1dcs/customer.txt @@ -0,0 +1,6 @@ +CUST1234560000000001Mr Other Branch Another Sortcode Road 0202198230002022027 +CUST9876540000000001Mr Alan B Smith 12 Station Road, Winchester, SO23 8AB 1103195241201102026 +CUST9876540000000002Mrs Carol D Jones 42 High Street, Romsey, SO51 8AA 0506196069915102026 +CUST9876540000000003Dr Edward F Green 7 Church Lane, Hursley, SO21 2JN 2902196499929022028 +CUST9876540000000004Professor Gail H Brown 1 University Road, Southampton, SO17 1BJ 0101190000031122026 +CUST9876549999999999Ms Highest Number Last Street 3112199950001012027 diff --git a/tests/equivalence/cbsa-bnkmenu/LICENSE b/tests/equivalence/cbsa-bnkmenu/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-bnkmenu/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-bnkmenu/NOTICE b/tests/equivalence/cbsa-bnkmenu/NOTICE new file mode 100644 index 000000000..249ce198b --- /dev/null +++ b/tests/equivalence/cbsa-bnkmenu/NOTICE @@ -0,0 +1,10 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/BNKMENU.cbl, its +copybook (ABNDINFO) and the BMS mapset its symbolic map is generated from +(src/base/bms_src/BNK1MAI.bms) are CBSA's, used unmodified from the corpus. + +The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-bnkmenu/case.json b/tests/equivalence/cbsa-bnkmenu/case.json new file mode 100644 index 000000000..adf30a46f --- /dev/null +++ b/tests/equivalence/cbsa-bnkmenu/case.json @@ -0,0 +1,198 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "BNKMENU", + "program_source": "src/base/cobol_src/BNKMENU.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OMEN", + "termid": "T001", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/BNKMENU.cbl", + "record": "DFHCOMMAREA" + } + ] + }, + "screens": { + "BNK1ME": { + "copybook": "@bms/BNK1MAI.cpy", + "input": "BNK1MEI", + "output": "BNK1MEO" + } + }, + "scenarios": [ + { + "name": "first-entry", + "aid": "DFHENTER", + "commarea": null, + "why": "EIBCALEN 0: BNK1MEO set to LOW-VALUES, the cursor on ACTION (length -1), SEND MAP ERASE; RETURN TRANSID('OMEN') COMMAREA LENGTH(1)" + }, + { + "name": "option-1", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "1" + } + }, + "why": "ENTER with action 1 (display customer): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('ODCS') IMMEDIATE -- no map sent" + }, + { + "name": "option-2", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "2" + } + }, + "why": "ENTER with action 2 (display account): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('ODAC') IMMEDIATE -- no map sent" + }, + { + "name": "option-3", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "3" + } + }, + "why": "ENTER with action 3 (create customer): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('OCCS') IMMEDIATE -- no map sent" + }, + { + "name": "option-4", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "4" + } + }, + "why": "ENTER with action 4 (create account): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('OCAC') IMMEDIATE -- no map sent" + }, + { + "name": "option-5", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "5" + } + }, + "why": "ENTER with action 5 (update account): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('OUAC') IMMEDIATE -- no map sent" + }, + { + "name": "option-6", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "6" + } + }, + "why": "ENTER with action 6 (credit / debit funds): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('OCRA') IMMEDIATE -- no map sent" + }, + { + "name": "option-7", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "7" + } + }, + "why": "ENTER with action 7 (transfer funds): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('OTFN') IMMEDIATE -- no map sent" + }, + { + "name": "option-a", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "A" + } + }, + "why": "ENTER with action A (look up a customer's accounts): EDIT-MENU-DATA accepts it, INVOKE-OTHER-TXNS ends the task with RETURN TRANSID('OCCA') IMMEDIATE -- no map sent" + }, + { + "name": "invalid-action", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "9" + } + }, + "why": "action 9: 'You must enter a valid value (1-7 or A).', SEND MAP DATAONLY ALARM, RETURN TRANSID('OMEN')" + }, + { + "name": "lower-case-action", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": "a" + } + }, + "why": "action 'a': only upper-case A is accepted -- the invalid-value message" + }, + { + "name": "blank-action", + "aid": "DFHENTER", + "commarea": {}, + "receive": { + "BNK1ME": { + "ACTIONI": " " + } + }, + "why": "a space typed in ACTION: the invalid-value message" + }, + { + "name": "mapfail", + "aid": "DFHENTER", + "commarea": {}, + "why": "ENTER with no field modified: RECEIVE MAP is MAPFAIL, the program sends the menu afresh (SEND MAP ERASE), then EDIT-MENU-DATA sees ACTIONI's LOW-VALUES: the invalid-value message is sent DATAONLY too" + }, + { + "name": "pa1", + "aid": "DFHPA1", + "commarea": {}, + "why": "PA1: CONTINUE -- nothing sent, RETURN TRANSID('OMEN')" + }, + { + "name": "pf3", + "aid": "DFHPF3", + "commarea": {}, + "why": "PF3: SEND-TERMINATION-MSG (SEND TEXT 'Session Ended' ERASE FREEKB), RETURN" + }, + { + "name": "pf12", + "aid": "DFHPF12", + "commarea": {}, + "why": "PF12: the same termination message, RETURN" + }, + { + "name": "clear", + "aid": "DFHCLEAR", + "commarea": {}, + "why": "CLEAR: SEND CONTROL ERASE FREEKB, RETURN" + }, + { + "name": "other-key", + "aid": "DFHPF5", + "commarea": {}, + "why": "PF5: WHEN OTHER -- 'Invalid key pressed.', SEND MAP DATAONLY ALARM, RETURN TRANSID('OMEN')" + } + ], + "notes": "CBSA's main menu (BNKMENU, transaction OMEN, BMS map BNK1ME of mapset BNK1MAI: the symbolic map is generated from src/base/bms_src/BNK1MAI.bms, @bms/BNK1MAI.cpy). Pseudo-conversational: a first task (EIBCALEN 0) sends the menu; a returning one (its 1-byte COMMAREA) acts on the AID -- PA keys do nothing, PF3 / PF12 end the session, CLEAR clears the screen, ENTER reads the action and either starts the chosen transaction with RETURN TRANSID(...) IMMEDIATE or re-sends the menu with a message, any other key re-sends it with 'Invalid key pressed.'. Not reached: the failure branches after RECEIVE MAP (other than MAPFAIL), SEND MAP / SEND TEXT / SEND CONTROL and RETURN -- no fault can be injected on those commands -- and so ABEND-THIS-TASK and the ABNDPROC LINKs. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-crdtagy1/LICENSE b/tests/equivalence/cbsa-crdtagy1/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy1/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-crdtagy1/NOTICE b/tests/equivalence/cbsa-crdtagy1/NOTICE new file mode 100644 index 000000000..e8ccaeab8 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy1/NOTICE @@ -0,0 +1,12 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/CRDTAGY1.cbl, +and its copybooks (SORTCODE, ABNDINFO) are CBSA's, used unmodified from the +corpus. + +The containers in case.json are synthetic test data written for this case in +the layout of CBSA's CRECUST copybook (the COMMAREA CRECUST puts into them); +they are not CBSA data. The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-crdtagy1/case.json b/tests/equivalence/cbsa-crdtagy1/case.json new file mode 100644 index 000000000..4a2e07a3f --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy1/case.json @@ -0,0 +1,118 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "CRDTAGY1", + "program_source": "src/base/cobol_src/CRDTAGY1.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCR1", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": null, + "linked": true, + "screens": {}, + "notes": "CBSA's credit agency 1 (CRDTAGY1, transaction OCR1): one of the five 'credit agencies' CRECUST (create customer) starts asynchronously with EXEC CICS RUN TRANSID(OCR1) CHANNEL(CIPCREDCHANN), after PUTting its 261-byte COMMAREA (the CRECUST copybook: the new customer) into containers CIPA-CIPE, then FETCHes the children and averages the scores. CRDTAGY1 DELAYs a random 1 to 2 seconds ((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1 into PIC S9(8) COMP), GETs CONTAINER(CIPA) of CHANNEL(CIPCREDCHANN) INTO WS-CONT-IN, sets WS-CONT-IN-CREDIT-SCORE to (999 - 1) * FUNCTION RANDOM + 1, PUTs it back and RETURNs; a GET or PUT failure is DISPLAYed and RETURNs; a DELAY failure fills ABNDINFO, LINKs ABNDPROC and ABENDs PLOP. No COMMAREA (its LINKAGE SECTION is empty: \"commarea\": null). The task starts with the channel its parent passed (oracle_assumptions.md X24); the containers on it are compared at the task's end, as CRECUST's FETCH CHILD sees them. FUNCTION RANDOM runs on the oracle's generator (C12) seeded by EIBTASKN, a stated fact of the run (X21): the scores are the oracle's, not z/OS's. A task takes no time: DELAY is NORMAL and EIBTIME does not move (X4). Not reached: the DELAY failure branch (A010's first IF, with POPULATE-TIME-DATE and the LINK to ABNDPROC): DELAY FOR SECONDS of 1 or 2 raises no condition IBM documents, and the harness injects none on DELAY; and the PUT CONTAINER failure branch (after a GET CONTAINER NORMAL on a channel in scope, nothing documented makes the PUT fail). Data: the containers are SYNTHETIC customers in the CRECUST layout. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "credit-score", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "the channel CRECUST builds: CIPCREDCHANN holding CIPA-CIPE, each the 261-byte new customer (CRECUST's COMMAREA, credit score 000). DELAY FOR SECONDS((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1) NORMAL (EIBTASKN 0: X21; the generator: C12; a task takes no time: X4), GET CONTAINER(CIPA) NORMAL, the score replaced by (999 - 1) * FUNCTION RANDOM + 1, PUT CONTAINER(CIPA) back; the other four containers unchanged" + }, + { + "name": "credit-score-task-4242", + "commarea": null, + "taskn": 4242, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000043Mr Gareth L Owen 2 Quay Street, Lymington, SO41 9AB 2902197299929022028Y0" + } + } + }, + "why": "EIBTASKN 4242 seeds RANDOM: another delay and another score; CIPA alone on the channel, its score 999 and flags 'Y' / '0' as CRECUST left them -- only the score changes" + }, + { + "name": "container-missing", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "CIPCREDCHANN without CIPA: GET CONTAINER CONTAINERERR (RESP 110, RESP2 10), caught by RESP: the DISPLAYs, then GET-ME-OUT-OF-HERE's RETURN; nothing PUT, the channel left as it came" + }, + { + "name": "no-channel", + "commarea": null, + "why": "started with no channel: GET CONTAINER CHANNEL(CIPCREDCHANN) names a channel not in the program's scope -- CHANNELERR (RESP 122, RESP2 2), RETURN; there is no channel to compare" + }, + { + "name": "other-channel", + "commarea": null, + "channel": { + "name": "MYCHANNEL", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "started with channel MYCHANNEL (holding CIPA): CIPCREDCHANN is still not in scope, CHANNELERR, RETURN; MYCHANNEL compared unchanged" + }, + { + "name": "container-too-long", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 EXTRA BYTES PAST THE RECORD" + } + } + }, + "why": "CIPA 288 bytes, FLENGTH 261: GET CONTAINER LENGERR (RESP 22, RESP2 11), the first 261 bytes moved; caught by RESP: RETURN with nothing PUT, CIPA unchanged" + }, + { + "name": "container-short", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winch" + } + } + }, + "why": "CIPA only 100 bytes: GET CONTAINER NORMAL, FLENGTH 100, WS-CONT-IN past byte 100 keeps its initial value (no VALUE clause: oracle_assumptions.md L3); the new score is set and PUT CONTAINER writes all 261 bytes back, so CIPA grows to 261" + } + ] +} diff --git a/tests/equivalence/cbsa-crdtagy2/LICENSE b/tests/equivalence/cbsa-crdtagy2/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy2/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-crdtagy2/NOTICE b/tests/equivalence/cbsa-crdtagy2/NOTICE new file mode 100644 index 000000000..e5536335b --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy2/NOTICE @@ -0,0 +1,12 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/CRDTAGY2.cbl, +and its copybooks (SORTCODE, ABNDINFO) are CBSA's, used unmodified from the +corpus. + +The containers in case.json are synthetic test data written for this case in +the layout of CBSA's CRECUST copybook (the COMMAREA CRECUST puts into them); +they are not CBSA data. The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-crdtagy2/case.json b/tests/equivalence/cbsa-crdtagy2/case.json new file mode 100644 index 000000000..d979e00dc --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy2/case.json @@ -0,0 +1,118 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "CRDTAGY2", + "program_source": "src/base/cobol_src/CRDTAGY2.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCR2", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": null, + "linked": true, + "screens": {}, + "notes": "CBSA's credit agency 2 (CRDTAGY2, transaction OCR2): one of the five 'credit agencies' CRECUST (create customer) starts asynchronously with EXEC CICS RUN TRANSID(OCR2) CHANNEL(CIPCREDCHANN), after PUTting its 261-byte COMMAREA (the CRECUST copybook: the new customer) into containers CIPA-CIPE, then FETCHes the children and averages the scores. CRDTAGY2 DELAYs a random 1 to 2 seconds ((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1 into PIC S9(8) COMP), GETs CONTAINER(CIPB) of CHANNEL(CIPCREDCHANN) INTO WS-CONT-IN, sets WS-CONT-IN-CREDIT-SCORE to (999 - 1) * FUNCTION RANDOM + 1, PUTs it back and RETURNs; a GET or PUT failure is DISPLAYed and RETURNs; a DELAY failure fills ABNDINFO, LINKs ABNDPROC and ABENDs PLOP. No COMMAREA (its LINKAGE SECTION is empty: \"commarea\": null). The task starts with the channel its parent passed (oracle_assumptions.md X24); the containers on it are compared at the task's end, as CRECUST's FETCH CHILD sees them. FUNCTION RANDOM runs on the oracle's generator (C12) seeded by EIBTASKN, a stated fact of the run (X21): the scores are the oracle's, not z/OS's. A task takes no time: DELAY is NORMAL and EIBTIME does not move (X4). Not reached: the DELAY failure branch (A010's first IF, with POPULATE-TIME-DATE and the LINK to ABNDPROC): DELAY FOR SECONDS of 1 or 2 raises no condition IBM documents, and the harness injects none on DELAY; and the PUT CONTAINER failure branch (after a GET CONTAINER NORMAL on a channel in scope, nothing documented makes the PUT fail). Data: the containers are SYNTHETIC customers in the CRECUST layout. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "credit-score", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "the channel CRECUST builds: CIPCREDCHANN holding CIPA-CIPE, each the 261-byte new customer (CRECUST's COMMAREA, credit score 000). DELAY FOR SECONDS((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1) NORMAL (EIBTASKN 0: X21; the generator: C12; a task takes no time: X4), GET CONTAINER(CIPB) NORMAL, the score replaced by (999 - 1) * FUNCTION RANDOM + 1, PUT CONTAINER(CIPB) back; the other four containers unchanged" + }, + { + "name": "credit-score-task-4242", + "commarea": null, + "taskn": 4242, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPB": { + "text": "CUST9876540000000043Mr Gareth L Owen 2 Quay Street, Lymington, SO41 9AB 2902197299929022028Y0" + } + } + }, + "why": "EIBTASKN 4242 seeds RANDOM: another delay and another score; CIPB alone on the channel, its score 999 and flags 'Y' / '0' as CRECUST left them -- only the score changes" + }, + { + "name": "container-missing", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "CIPCREDCHANN without CIPB: GET CONTAINER CONTAINERERR (RESP 110, RESP2 10), caught by RESP: the DISPLAYs, then GET-ME-OUT-OF-HERE's RETURN; nothing PUT, the channel left as it came" + }, + { + "name": "no-channel", + "commarea": null, + "why": "started with no channel: GET CONTAINER CHANNEL(CIPCREDCHANN) names a channel not in the program's scope -- CHANNELERR (RESP 122, RESP2 2), RETURN; there is no channel to compare" + }, + { + "name": "other-channel", + "commarea": null, + "channel": { + "name": "MYCHANNEL", + "containers": { + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "started with channel MYCHANNEL (holding CIPB): CIPCREDCHANN is still not in scope, CHANNELERR, RETURN; MYCHANNEL compared unchanged" + }, + { + "name": "container-too-long", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 EXTRA BYTES PAST THE RECORD" + } + } + }, + "why": "CIPB 288 bytes, FLENGTH 261: GET CONTAINER LENGERR (RESP 22, RESP2 11), the first 261 bytes moved; caught by RESP: RETURN with nothing PUT, CIPB unchanged" + }, + { + "name": "container-short", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winch" + } + } + }, + "why": "CIPB only 100 bytes: GET CONTAINER NORMAL, FLENGTH 100, WS-CONT-IN past byte 100 keeps its initial value (no VALUE clause: oracle_assumptions.md L3); the new score is set and PUT CONTAINER writes all 261 bytes back, so CIPB grows to 261" + } + ] +} diff --git a/tests/equivalence/cbsa-crdtagy3/LICENSE b/tests/equivalence/cbsa-crdtagy3/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy3/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-crdtagy3/NOTICE b/tests/equivalence/cbsa-crdtagy3/NOTICE new file mode 100644 index 000000000..0d17c19de --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy3/NOTICE @@ -0,0 +1,12 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/CRDTAGY3.cbl, +and its copybooks (SORTCODE, ABNDINFO) are CBSA's, used unmodified from the +corpus. + +The containers in case.json are synthetic test data written for this case in +the layout of CBSA's CRECUST copybook (the COMMAREA CRECUST puts into them); +they are not CBSA data. The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-crdtagy3/case.json b/tests/equivalence/cbsa-crdtagy3/case.json new file mode 100644 index 000000000..d74c006b8 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy3/case.json @@ -0,0 +1,118 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "CRDTAGY3", + "program_source": "src/base/cobol_src/CRDTAGY3.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCR3", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": null, + "linked": true, + "screens": {}, + "notes": "CBSA's credit agency 3 (CRDTAGY3, transaction OCR3): one of the five 'credit agencies' CRECUST (create customer) starts asynchronously with EXEC CICS RUN TRANSID(OCR3) CHANNEL(CIPCREDCHANN), after PUTting its 261-byte COMMAREA (the CRECUST copybook: the new customer) into containers CIPA-CIPE, then FETCHes the children and averages the scores. CRDTAGY3 DELAYs a random 1 to 2 seconds ((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1 into PIC S9(8) COMP), GETs CONTAINER(CIPC) of CHANNEL(CIPCREDCHANN) INTO WS-CONT-IN, sets WS-CONT-IN-CREDIT-SCORE to (999 - 1) * FUNCTION RANDOM + 1, PUTs it back and RETURNs; a GET or PUT failure is DISPLAYed and RETURNs; a DELAY failure fills ABNDINFO, LINKs ABNDPROC and ABENDs PLOP. No COMMAREA (its LINKAGE SECTION is empty: \"commarea\": null). The task starts with the channel its parent passed (oracle_assumptions.md X24); the containers on it are compared at the task's end, as CRECUST's FETCH CHILD sees them. FUNCTION RANDOM runs on the oracle's generator (C12) seeded by EIBTASKN, a stated fact of the run (X21): the scores are the oracle's, not z/OS's. A task takes no time: DELAY is NORMAL and EIBTIME does not move (X4). Not reached: the DELAY failure branch (A010's first IF, with POPULATE-TIME-DATE and the LINK to ABNDPROC): DELAY FOR SECONDS of 1 or 2 raises no condition IBM documents, and the harness injects none on DELAY; and the PUT CONTAINER failure branch (after a GET CONTAINER NORMAL on a channel in scope, nothing documented makes the PUT fail). Data: the containers are SYNTHETIC customers in the CRECUST layout. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "credit-score", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "the channel CRECUST builds: CIPCREDCHANN holding CIPA-CIPE, each the 261-byte new customer (CRECUST's COMMAREA, credit score 000). DELAY FOR SECONDS((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1) NORMAL (EIBTASKN 0: X21; the generator: C12; a task takes no time: X4), GET CONTAINER(CIPC) NORMAL, the score replaced by (999 - 1) * FUNCTION RANDOM + 1, PUT CONTAINER(CIPC) back; the other four containers unchanged" + }, + { + "name": "credit-score-task-4242", + "commarea": null, + "taskn": 4242, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPC": { + "text": "CUST9876540000000043Mr Gareth L Owen 2 Quay Street, Lymington, SO41 9AB 2902197299929022028Y0" + } + } + }, + "why": "EIBTASKN 4242 seeds RANDOM: another delay and another score; CIPC alone on the channel, its score 999 and flags 'Y' / '0' as CRECUST left them -- only the score changes" + }, + { + "name": "container-missing", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "CIPCREDCHANN without CIPC: GET CONTAINER CONTAINERERR (RESP 110, RESP2 10), caught by RESP: the DISPLAYs, then GET-ME-OUT-OF-HERE's RETURN; nothing PUT, the channel left as it came" + }, + { + "name": "no-channel", + "commarea": null, + "why": "started with no channel: GET CONTAINER CHANNEL(CIPCREDCHANN) names a channel not in the program's scope -- CHANNELERR (RESP 122, RESP2 2), RETURN; there is no channel to compare" + }, + { + "name": "other-channel", + "commarea": null, + "channel": { + "name": "MYCHANNEL", + "containers": { + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "started with channel MYCHANNEL (holding CIPC): CIPCREDCHANN is still not in scope, CHANNELERR, RETURN; MYCHANNEL compared unchanged" + }, + { + "name": "container-too-long", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 EXTRA BYTES PAST THE RECORD" + } + } + }, + "why": "CIPC 288 bytes, FLENGTH 261: GET CONTAINER LENGERR (RESP 22, RESP2 11), the first 261 bytes moved; caught by RESP: RETURN with nothing PUT, CIPC unchanged" + }, + { + "name": "container-short", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winch" + } + } + }, + "why": "CIPC only 100 bytes: GET CONTAINER NORMAL, FLENGTH 100, WS-CONT-IN past byte 100 keeps its initial value (no VALUE clause: oracle_assumptions.md L3); the new score is set and PUT CONTAINER writes all 261 bytes back, so CIPC grows to 261" + } + ] +} diff --git a/tests/equivalence/cbsa-crdtagy4/LICENSE b/tests/equivalence/cbsa-crdtagy4/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy4/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-crdtagy4/NOTICE b/tests/equivalence/cbsa-crdtagy4/NOTICE new file mode 100644 index 000000000..a6a349ae2 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy4/NOTICE @@ -0,0 +1,12 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/CRDTAGY4.cbl, +and its copybooks (SORTCODE, ABNDINFO) are CBSA's, used unmodified from the +corpus. + +The containers in case.json are synthetic test data written for this case in +the layout of CBSA's CRECUST copybook (the COMMAREA CRECUST puts into them); +they are not CBSA data. The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-crdtagy4/case.json b/tests/equivalence/cbsa-crdtagy4/case.json new file mode 100644 index 000000000..38a03fc22 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy4/case.json @@ -0,0 +1,118 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "CRDTAGY4", + "program_source": "src/base/cobol_src/CRDTAGY4.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCR4", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": null, + "linked": true, + "screens": {}, + "notes": "CBSA's credit agency 4 (CRDTAGY4, transaction OCR4): one of the five 'credit agencies' CRECUST (create customer) starts asynchronously with EXEC CICS RUN TRANSID(OCR4) CHANNEL(CIPCREDCHANN), after PUTting its 261-byte COMMAREA (the CRECUST copybook: the new customer) into containers CIPA-CIPE, then FETCHes the children and averages the scores. CRDTAGY4 DELAYs a random 1 to 2 seconds ((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1 into PIC S9(8) COMP), GETs CONTAINER(CIPD) of CHANNEL(CIPCREDCHANN) INTO WS-CONT-IN, sets WS-CONT-IN-CREDIT-SCORE to (999 - 1) * FUNCTION RANDOM + 1, PUTs it back and RETURNs; a GET or PUT failure is DISPLAYed and RETURNs; a DELAY failure fills ABNDINFO, LINKs ABNDPROC and ABENDs PLOP. No COMMAREA (its LINKAGE SECTION is empty: \"commarea\": null). The task starts with the channel its parent passed (oracle_assumptions.md X24); the containers on it are compared at the task's end, as CRECUST's FETCH CHILD sees them. FUNCTION RANDOM runs on the oracle's generator (C12) seeded by EIBTASKN, a stated fact of the run (X21): the scores are the oracle's, not z/OS's. A task takes no time: DELAY is NORMAL and EIBTIME does not move (X4). Not reached: the DELAY failure branch (A010's first IF, with POPULATE-TIME-DATE and the LINK to ABNDPROC): DELAY FOR SECONDS of 1 or 2 raises no condition IBM documents, and the harness injects none on DELAY; and the PUT CONTAINER failure branch (after a GET CONTAINER NORMAL on a channel in scope, nothing documented makes the PUT fail). Data: the containers are SYNTHETIC customers in the CRECUST layout. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "credit-score", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "the channel CRECUST builds: CIPCREDCHANN holding CIPA-CIPE, each the 261-byte new customer (CRECUST's COMMAREA, credit score 000). DELAY FOR SECONDS((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1) NORMAL (EIBTASKN 0: X21; the generator: C12; a task takes no time: X4), GET CONTAINER(CIPD) NORMAL, the score replaced by (999 - 1) * FUNCTION RANDOM + 1, PUT CONTAINER(CIPD) back; the other four containers unchanged" + }, + { + "name": "credit-score-task-4242", + "commarea": null, + "taskn": 4242, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPD": { + "text": "CUST9876540000000043Mr Gareth L Owen 2 Quay Street, Lymington, SO41 9AB 2902197299929022028Y0" + } + } + }, + "why": "EIBTASKN 4242 seeds RANDOM: another delay and another score; CIPD alone on the channel, its score 999 and flags 'Y' / '0' as CRECUST left them -- only the score changes" + }, + { + "name": "container-missing", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "CIPCREDCHANN without CIPD: GET CONTAINER CONTAINERERR (RESP 110, RESP2 10), caught by RESP: the DISPLAYs, then GET-ME-OUT-OF-HERE's RETURN; nothing PUT, the channel left as it came" + }, + { + "name": "no-channel", + "commarea": null, + "why": "started with no channel: GET CONTAINER CHANNEL(CIPCREDCHANN) names a channel not in the program's scope -- CHANNELERR (RESP 122, RESP2 2), RETURN; there is no channel to compare" + }, + { + "name": "other-channel", + "commarea": null, + "channel": { + "name": "MYCHANNEL", + "containers": { + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "started with channel MYCHANNEL (holding CIPD): CIPCREDCHANN is still not in scope, CHANNELERR, RETURN; MYCHANNEL compared unchanged" + }, + { + "name": "container-too-long", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 EXTRA BYTES PAST THE RECORD" + } + } + }, + "why": "CIPD 288 bytes, FLENGTH 261: GET CONTAINER LENGERR (RESP 22, RESP2 11), the first 261 bytes moved; caught by RESP: RETURN with nothing PUT, CIPD unchanged" + }, + { + "name": "container-short", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winch" + } + } + }, + "why": "CIPD only 100 bytes: GET CONTAINER NORMAL, FLENGTH 100, WS-CONT-IN past byte 100 keeps its initial value (no VALUE clause: oracle_assumptions.md L3); the new score is set and PUT CONTAINER writes all 261 bytes back, so CIPD grows to 261" + } + ] +} diff --git a/tests/equivalence/cbsa-crdtagy5/LICENSE b/tests/equivalence/cbsa-crdtagy5/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy5/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-crdtagy5/NOTICE b/tests/equivalence/cbsa-crdtagy5/NOTICE new file mode 100644 index 000000000..4c083ce80 --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy5/NOTICE @@ -0,0 +1,12 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/CRDTAGY5.cbl, +and its copybooks (SORTCODE, ABNDINFO) are CBSA's, used unmodified from the +corpus. + +The containers in case.json are synthetic test data written for this case in +the layout of CBSA's CRECUST copybook (the COMMAREA CRECUST puts into them); +they are not CBSA data. The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-crdtagy5/case.json b/tests/equivalence/cbsa-crdtagy5/case.json new file mode 100644 index 000000000..f18bfc7ad --- /dev/null +++ b/tests/equivalence/cbsa-crdtagy5/case.json @@ -0,0 +1,118 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "CRDTAGY5", + "program_source": "src/base/cobol_src/CRDTAGY5.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCR5", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": null, + "linked": true, + "screens": {}, + "notes": "CBSA's credit agency 5 (CRDTAGY5, transaction OCR5): one of the five 'credit agencies' CRECUST (create customer) starts asynchronously with EXEC CICS RUN TRANSID(OCR5) CHANNEL(CIPCREDCHANN), after PUTting its 261-byte COMMAREA (the CRECUST copybook: the new customer) into containers CIPA-CIPE, then FETCHes the children and averages the scores. CRDTAGY5 DELAYs a random 1 to 2 seconds ((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1 into PIC S9(8) COMP), GETs CONTAINER(CIPE) of CHANNEL(CIPCREDCHANN) INTO WS-CONT-IN, sets WS-CONT-IN-CREDIT-SCORE to (999 - 1) * FUNCTION RANDOM + 1, PUTs it back and RETURNs; a GET or PUT failure is DISPLAYed and RETURNs; a DELAY failure fills ABNDINFO, LINKs ABNDPROC and ABENDs PLOP. No COMMAREA (its LINKAGE SECTION is empty: \"commarea\": null). The task starts with the channel its parent passed (oracle_assumptions.md X24); the containers on it are compared at the task's end, as CRECUST's FETCH CHILD sees them. FUNCTION RANDOM runs on the oracle's generator (C12) seeded by EIBTASKN, a stated fact of the run (X21): the scores are the oracle's, not z/OS's. A task takes no time: DELAY is NORMAL and EIBTIME does not move (X4). Not reached: the DELAY failure branch (A010's first IF, with POPULATE-TIME-DATE and the LINK to ABNDPROC): DELAY FOR SECONDS of 1 or 2 raises no condition IBM documents, and the harness injects none on DELAY; and the PUT CONTAINER failure branch (after a GET CONTAINER NORMAL on a channel in scope, nothing documented makes the PUT fail). Data: the containers are SYNTHETIC customers in the CRECUST layout. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "credit-score", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPB": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPC": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPD": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + }, + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "the channel CRECUST builds: CIPCREDCHANN holding CIPA-CIPE, each the 261-byte new customer (CRECUST's COMMAREA, credit score 000). DELAY FOR SECONDS((3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1) NORMAL (EIBTASKN 0: X21; the generator: C12; a task takes no time: X4), GET CONTAINER(CIPE) NORMAL, the score replaced by (999 - 1) * FUNCTION RANDOM + 1, PUT CONTAINER(CIPE) back; the other four containers unchanged" + }, + { + "name": "credit-score-task-4242", + "commarea": null, + "taskn": 4242, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPE": { + "text": "CUST9876540000000043Mr Gareth L Owen 2 Quay Street, Lymington, SO41 9AB 2902197299929022028Y0" + } + } + }, + "why": "EIBTASKN 4242 seeds RANDOM: another delay and another score; CIPE alone on the channel, its score 999 and flags 'Y' / '0' as CRECUST left them -- only the score changes" + }, + { + "name": "container-missing", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPA": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "CIPCREDCHANN without CIPE: GET CONTAINER CONTAINERERR (RESP 110, RESP2 10), caught by RESP: the DISPLAYs, then GET-ME-OUT-OF-HERE's RETURN; nothing PUT, the channel left as it came" + }, + { + "name": "no-channel", + "commarea": null, + "why": "started with no channel: GET CONTAINER CHANNEL(CIPCREDCHANN) names a channel not in the program's scope -- CHANNELERR (RESP 122, RESP2 2), RETURN; there is no channel to compare" + }, + { + "name": "other-channel", + "commarea": null, + "channel": { + "name": "MYCHANNEL", + "containers": { + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 " + } + } + }, + "why": "started with channel MYCHANNEL (holding CIPE): CIPCREDCHANN is still not in scope, CHANNELERR, RETURN; MYCHANNEL compared unchanged" + }, + { + "name": "container-too-long", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winchester, SO23 7AA 1207198500007102026 EXTRA BYTES PAST THE RECORD" + } + } + }, + "why": "CIPE 288 bytes, FLENGTH 261: GET CONTAINER LENGERR (RESP 22, RESP2 11), the first 261 bytes moved; caught by RESP: RETURN with nothing PUT, CIPE unchanged" + }, + { + "name": "container-short", + "commarea": null, + "channel": { + "name": "CIPCREDCHANN", + "containers": { + "CIPE": { + "text": "CUST9876540000000042Mrs Fiona K Laidlaw 17 Abbey Road, Winch" + } + } + }, + "why": "CIPE only 100 bytes: GET CONTAINER NORMAL, FLENGTH 100, WS-CONT-IN past byte 100 keeps its initial value (no VALUE clause: oracle_assumptions.md L3); the new score is set and PUT CONTAINER writes all 261 bytes back, so CIPE grows to 261" + } + ] +} diff --git a/tests/equivalence/cbsa-creacc/LICENSE b/tests/equivalence/cbsa-creacc/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-creacc/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-creacc/NOTICE b/tests/equivalence/cbsa-creacc/NOTICE new file mode 100644 index 000000000..7923dfb1d --- /dev/null +++ b/tests/equivalence/cbsa-creacc/NOTICE @@ -0,0 +1,16 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The programs under test -- src/base/cobol_src/CREACC.cbl +and the programs it LINKs in the task, INQCUST.cbl, INQACCCU.cbl and +ABNDPROC.cbl -- their copybooks (CREACC, INQCUST, INQACCCU, ACCOUNT, CUSTOMER, +PROCTRAN, ACCDB2, PROCDB2, CONTDB2, SORTCODE, ACCTCTRL, ABNDINFO) and the +tables' DDL (etc/install/base/db2jcl/CRETB01.jcl, CREI101.jcl, CRETB02.jcl, +CRETB03.jcl, CREI301.jcl) are CBSA's, used unmodified from the corpus. + +seed.sql and customer.txt in this directory are synthetic test data written +for these cases in the layout of CBSA's ACCOUNT, PROCTRAN and CONTROL tables +and CUSTOMER file; they are not CBSA data. The scenarios in case.json are +written for this case. diff --git a/tests/equivalence/cbsa-creacc/abndfile.bin b/tests/equivalence/cbsa-creacc/abndfile.bin new file mode 100644 index 000000000..e69de29bb diff --git a/tests/equivalence/cbsa-creacc/case.json b/tests/equivalence/cbsa-creacc/case.json new file mode 100644 index 000000000..9f06dea85 --- /dev/null +++ b/tests/equivalence/cbsa-creacc/case.json @@ -0,0 +1,353 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "CREACC", + "program_source": "src/base/cobol_src/CREACC.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "OCAC", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "taskn": 4242, + "programs": [ + { + "program": "INQCUST", + "program_source": "src/base/cobol_src/INQCUST.cbl" + }, + { + "program": "INQACCCU", + "program_source": "src/base/cobol_src/INQACCCU.cbl" + }, + { + "program": "ABNDPROC", + "program_source": "src/base/cobol_src/ABNDPROC.cbl" + } + ], + "datasets": { + "CBSA.CICSBSA.ABNDFILE": { + "input": "@case/abndfile.bin", + "entity": "WsAbndArea", + "copybook": "src/base/cobol_src/ABNDPROC.cbl", + "record": "WS-ABND-AREA", + "recovery": "NONE", + "recovery_why": "etc/install/base/installjcl/BANK.csd: DEFINE FILE(ABNDFILE) ... RECOVERY(NONE) -- the abend log a backout must not undo" + }, + "CBSA.CICSBSA.CUSTOMER": { + "input": "@case/customer.txt", + "entity": "OutputData", + "copybook": "src/base/cobol_copy/CUSTOMER.cpy", + "record": "CUSTOMER-RECORD" + } + }, + "db2": { + "ddl": [ + "etc/install/base/db2jcl/CRETB01.jcl", + "etc/install/base/db2jcl/CREI101.jcl", + "etc/install/base/db2jcl/CRETB02.jcl", + "etc/install/base/db2jcl/CRETB03.jcl", + "etc/install/base/db2jcl/CREI301.jcl" + ], + "seed": "@case/seed.sql", + "compare": [ + "IBMUSER.ACCOUNT", + "IBMUSER.PROCTRAN", + "IBMUSER.CONTROL" + ], + "qualifier": "IBMUSER" + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/BNK1CAC.cbl", + "record": "SUBPGM-PARMS" + } + ] + }, + "linked": true, + "screens": {}, + "scenarios": [ + { + "name": "create-current", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "500", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "customer 1 (two 987654 accounts): INQCUST finds them, INQACCCU counts 2, CURRENT passes the type check, ENQ CBSAACCT987654, CONTROL 987654-ACCOUNT-LAST 20 -> 21 and ACCOUNT-COUNT 13 -> 14, INSERT ACCOUNT 00000021 (opened / last statement today, next statement 30 days on), INSERT PROCTRAN 'OCA', DEQ; 'Y' and the new key, dates in the COMMAREA" + }, + { + "name": "create-isa-no-accounts", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000003", + "SUBPGM-ACC-TYPE": "ISA", + "SUBPGM-INT-RT": "3.10", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "250.00", + "SUBPGM-ACT-BAL": "250.00" + }, + "why": "customer 3 has no accounts (INQACCCU's first FETCH +100: 0); an ISA with a rate and a balance" + }, + { + "name": "create-mortgage-negative", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "MORTGAGE", + "SUBPGM-INT-RT": "4.25", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "-150000.00", + "SUBPGM-ACT-BAL": "-150000.00" + }, + "why": "a MORTGAGE: negative S9(10)V99 balances into DECIMAL(12,2)" + }, + { + "name": "create-saving", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000003", + "SUBPGM-ACC-TYPE": "SAVING", + "SUBPGM-INT-RT": "1.50", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "SAVING (its first six characters)" + }, + { + "name": "create-loan", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000003", + "SUBPGM-ACC-TYPE": "LOAN", + "SUBPGM-INT-RT": "17.90", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "-4500.00", + "SUBPGM-ACT-BAL": "-4500.00" + }, + "why": "LOAN (its first four characters)" + }, + { + "name": "type-prefix-isa", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000003", + "SUBPGM-ACC-TYPE": "ISAPLUS", + "SUBPGM-INT-RT": "2.00", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "ACC-TYPE 'ISAPLUS': the check reads only (1:3) = 'ISA', so it is accepted and stored as typed" + }, + { + "name": "type-lower-case", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "current", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "'current' in lower case: WHEN OTHER -- 'N' / 'A', nothing written, no ENQ" + }, + { + "name": "type-invalid", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CHEQUE", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "an unknown type: 'N' / 'A'" + }, + { + "name": "type-blank", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "a blank type: 'N' / 'A'" + }, + { + "name": "customer-not-found", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000005", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "customer 5 is not on the CUSTOMER file: INQCUST 'N' -> 'N' / '1', no account count, nothing written" + }, + { + "name": "ten-accounts", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000002", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "customer 2 already has ten 987654 accounts: NUMBER-OF-ACCOUNTS > 9 -> 'N' / '8', nothing written" + }, + { + "name": "highest-customer", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "9999999999", + "SUBPGM-ACC-TYPE": "SAVING", + "SUBPGM-INT-RT": "1.05", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "why": "customer 9999999999: INQCUST browses back to the last customer (9999999999 itself) and finds it, but INQACCCU does not look up CUSTOMER-NUMBER 9999999999 (COMM-SUCCESS 'N'): 'Error counting accounts' DISPLAYed, 'N' / '9', nothing written" + }, + { + "name": "account-insert-duplicate", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "sql_faults": [ + { + "program": "CREACC", + "table": "ACCOUNT", + "verb": "INSERT", + "sqlcode": -803 + } + ], + "why": "INSERT ACCOUNT fails -803: 'N' / '7', DEQ, RETURN -- the CONTROL updates stay (no rollback), compared" + }, + { + "name": "proctran-insert-fails", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "sql_faults": [ + { + "program": "CREACC", + "table": "PROCTRAN", + "verb": "INSERT", + "sqlcode": -913 + } + ], + "why": "INSERT PROCTRAN fails -913: DISPLAY, DEQ, ABNDPROC LINKed (an ABNDFILE record), ABEND HWPT -- the unit of work backed out" + }, + { + "name": "control-select-fails", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "sql_faults": [ + { + "program": "CREACC", + "line": 444, + "sqlcode": 100 + } + ], + "why": "SELECT of 987654-ACCOUNT-LAST finds no row (+100): ABNDPROC LINKed, DISPLAY, ABEND HNCS NODUMP" + }, + { + "name": "control-update-fails", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "sql_faults": [ + { + "program": "CREACC", + "line": 529, + "sqlcode": -913 + } + ], + "why": "UPDATE of ACCOUNT-LAST fails -913: ABNDPROC, ABEND HNCS" + }, + { + "name": "count-select-fails", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "sql_faults": [ + { + "program": "CREACC", + "line": 611, + "sqlcode": 100 + } + ], + "why": "SELECT of 987654-ACCOUNT-COUNT finds no row: ABNDPROC, ABEND HNCS (the first UPDATE backed out with the task)" + }, + { + "name": "count-update-fails", + "commarea": { + "SUBPGM-EYECATCHER": "ACCT", + "SUBPGM-CUSTNO": "0000000001", + "SUBPGM-ACC-TYPE": "CURRENT", + "SUBPGM-INT-RT": "0", + "SUBPGM-OVERDR-LIM": "0", + "SUBPGM-AVAIL-BAL": "0", + "SUBPGM-ACT-BAL": "0" + }, + "sql_faults": [ + { + "program": "CREACC", + "line": 694, + "sqlcode": -913 + } + ], + "why": "UPDATE of ACCOUNT-COUNT fails: ABNDPROC, ABEND HNCS" + } + ], + "notes": "CBSA's create-account service (CREACC, LINKed by BNK1CAC -- transaction OCAC -- with its SUBPGM-PARMS, the CREACC copybook's layout; BNK1CAC.cbl names the record because CREACC.cbl's own COPY ... REPLACING is not laid out by the harness). It LINKs INQCUST for the customer (on the program's own sort code, 987654) and INQACCCU to count the customer's accounts (both run in the task), refuses more than nine accounts and an account type that does not start ISA / MORTGAGE / SAVING / CURRENT / LOAN, then ENQs the account counter resource (CBSAACCT987654), takes the next number from Db2's CONTROL row 987654-ACCOUNT-LAST and bumps 987654-ACCOUNT-COUNT, INSERTs the ACCOUNT row (opened and last statement today, next statement 30 days on, FUNCTION INTEGER-OF-DATE / DATE-OF-INTEGER) and a PROCTRAN 'OCA' row (reference EIBTASKN: the stated task number 4242, oracle_assumptions.md X21), DEQs and returns the new key and dates. A failed CONTROL SELECT / UPDATE or PROCTRAN INSERT LINKs ABNDPROC (an ABNDFILE record) and ABENDs (HNCS / HWPT); a failed ACCOUNT INSERT returns 'N' / '7'. ACCOUNT, PROCTRAN, CONTROL, CUSTOMER and ABNDFILE are compared after every scenario. The enumerated SQL faults (#4173) include INQACCCU's cursor failing after its SYNCPOINT ROLLBACK: CREACC goes on and its INSERTs are a new unit of work, committed at the task's end. Not reached: ENQ / DEQ failures and a LINK failure (no fault can be injected on them) and the leap-year arithmetic of CALCULATE-DATES' February branch (the clock is 1 October). Data: seed.sql is SYNTHETIC; customer.txt is cbsa-updcust's. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived." +} diff --git a/tests/equivalence/cbsa-creacc/customer.txt b/tests/equivalence/cbsa-creacc/customer.txt new file mode 100644 index 000000000..910f96edf --- /dev/null +++ b/tests/equivalence/cbsa-creacc/customer.txt @@ -0,0 +1,6 @@ +CUST1234560000000001Mr Other Branch Another Sortcode Road 0202198230002022027 +CUST9876540000000001Mr Alan B Smith 12 Station Road, Winchester, SO23 8AB 1103195241201102026 +CUST9876540000000002Mrs Carol D Jones 42 High Street, Romsey, SO51 8AA 0506196069915102026 +CUST9876540000000003Dr Edward F Green 7 Church Lane, Hursley, SO21 2JN 2902196499929022028 +CUST9876540000000004Professor Gail H Brown 1 University Road, Southampton, SO17 1BJ 0101190000031122026 +CUST9876549999999999Ms Highest Number Last Street 3112199950001012027 diff --git a/tests/equivalence/cbsa-creacc/seed.sql b/tests/equivalence/cbsa-creacc/seed.sql new file mode 100644 index 000000000..92bafcfb7 --- /dev/null +++ b/tests/equivalence/cbsa-creacc/seed.sql @@ -0,0 +1,21 @@ +INSERT INTO IBMUSER.ACCOUNT VALUES + ('ACCT','0000000001','987654','00000001','CURRENT ', 0.00,'2019-03-15', 500,'2026-08-01','2026-09-01', 1234.56, 1200.00), + ('ACCT','0000000001','987654','00000002','SAVING ', 2.50,'2020-01-31', 0,'2026-08-01','2026-09-01', 98765.43, 98765.43), + ('ACCT','0000000001','123456','00000099','CURRENT ', 0.00,'2017-05-05', 100,'2026-08-01','2026-09-01', 50.00, 50.00), + ('ACCT','0000000002','987654','00000003','LOAN ', 17.90,'2018-12-01', 0,'2026-07-15','2026-08-15', -4500.00, -4500.00), + ('ACCT','0000000002','987654','00000004','MORTGAGE', 4.25,'2018-12-01', 0,'2026-07-15','2026-08-15', -150000.00, -150000.00), + ('ACCT','0000000002','987654','00000005','ISA ', 3.10,'2018-12-01', 0,'2026-07-15','2026-08-15', 10.00, 10.00), + ('ACCT','0000000002','987654','00000006','CURRENT ', 0.00,'2018-12-01', 2500,'2026-07-15','2026-08-15', 9999999999.99, 9999999999.99), + ('ACCT','0000000002','987654','00000007','CURRENT ', 0.00,'2018-12-01', 1000,'2026-07-15','2026-08-15', -9999999999.99, -9999999999.99), + ('ACCT','0000000002','987654','00000008','SAVING ', 1.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 100.00, 100.00), + ('ACCT','0000000002','987654','00000009','SAVING ', 1.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 0.00, 0.00), + ('ACCT','0000000002','987654','00000010','CURRENT ', 0.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 0.01, 0.01), + ('ACCT','0000000002','987654','00000011','CURRENT ', 0.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 77.70, 77.70), + ('ACCT','0000000002','987654','00000012','ISA ', 2.00,'2018-12-01', 0,'2026-07-15','2026-08-15', 5.00, 5.00), + ('ACCT','0000000004','987654','00000013','CURRENT ', 0.00,'2021-06-30', 0, NULL, '2026-10-30', 10.00, 10.00); +INSERT INTO IBMUSER.PROCTRAN VALUES + ('PRTR','987654','00000001','2026-09-30','091500','000000000042','CRE','COUNTER RECVED ', 1000.00); +INSERT INTO IBMUSER.CONTROL VALUES + ('987654-ACCOUNT-LAST ', 20, ' '), + ('987654-ACCOUNT-COUNT ', 13, ' '), + ('123456-ACCOUNT-LAST ', 99, ' '); diff --git a/tests/equivalence/cbsa-getcompy/LICENSE b/tests/equivalence/cbsa-getcompy/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-getcompy/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-getcompy/NOTICE b/tests/equivalence/cbsa-getcompy/NOTICE new file mode 100644 index 000000000..6046a0115 --- /dev/null +++ b/tests/equivalence/cbsa-getcompy/NOTICE @@ -0,0 +1,9 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/GETCOMPY.cbl, +and its copybook (GETCOMPY) are CBSA's, used unmodified from the corpus. + +The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-getcompy/case.json b/tests/equivalence/cbsa-getcompy/case.json new file mode 100644 index 000000000..878c44516 --- /dev/null +++ b/tests/equivalence/cbsa-getcompy/case.json @@ -0,0 +1,48 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "GETCOMPY", + "program_source": "src/base/cobol_src/GETCOMPY.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "CJSA", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/GETCOMPY.cbl", + "record": "DFHCOMMAREA" + } + ] + }, + "linked": true, + "screens": {}, + "notes": "CBSA's company-name service (GETCOMPY, LINKed by the web front end's GetCompany API with the GETCOMPY copybook's 40-byte COMMAREA, COMPANY-NAME): MOVE 'CICS Bank Sample Application' TO COMPANY-NAME (padded with spaces to 40), then EXEC CICS RETURN. The transaction is CJSA, the CICS Liberty JVM server's default for a web request (the corpus defines none for these programs; the program never reads EIBTRNID). One path, no condition: the scenarios differ only in what the caller leaves in the COMMAREA, which the MOVE replaces whole. The COMMAREA is the program's own DFHCOMMAREA (the copybook starts at level 03). Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "blank-commarea", + "commarea": {}, + "why": "the COMMAREA arrives as spaces: COMPANY-NAME becomes the literal, space-padded to 40" + }, + { + "name": "caller-data-replaced", + "commarea": { + "COMPANY-NAME": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" + }, + "why": "a COMMAREA full of the caller's bytes: all 40 replaced, the 12 bytes past the literal by spaces" + }, + { + "name": "shorter-caller-name", + "commarea": { + "COMPANY-NAME": "Some Other Bank Name That Is Long" + }, + "why": "a shorter caller name under the literal: no byte of it survives the MOVE" + } + ] +} diff --git a/tests/equivalence/cbsa-getscode/LICENSE b/tests/equivalence/cbsa-getscode/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-getscode/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-getscode/NOTICE b/tests/equivalence/cbsa-getscode/NOTICE new file mode 100644 index 000000000..fd1859cfc --- /dev/null +++ b/tests/equivalence/cbsa-getscode/NOTICE @@ -0,0 +1,10 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The program under test, src/base/cobol_src/GETSCODE.cbl, +and its copybooks (GETSCODE, SORTCODE) are CBSA's, used unmodified from the +corpus. + +The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-getscode/case.json b/tests/equivalence/cbsa-getscode/case.json new file mode 100644 index 000000000..6755d1ea5 --- /dev/null +++ b/tests/equivalence/cbsa-getscode/case.json @@ -0,0 +1,48 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "GETSCODE", + "program_source": "src/base/cobol_src/GETSCODE.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "CJSA", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "datasets": {}, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_copy/GETSCODE.cpy", + "record": "GETSORTCODEOPERATION" + } + ] + }, + "linked": true, + "screens": {}, + "notes": "CBSA's sort-code service (GETSCODE, LINKed by the web front end's GetSortCode API with the GETSCODE copybook's 6-byte COMMAREA): MOVE LITERAL-SORTCODE (the SORTCODE copybook's 77 SORTCODE PIC 9(6) VALUE 987654, renamed by COPY ... REPLACING) TO SORTCODE OF DFHCOMMAREA (PIC X(6)), then EXEC CICS RETURN. The transaction is CJSA, the CICS Liberty JVM server's default for a web request (the corpus defines none for these programs; the program never reads EIBTRNID). One path, no condition: the scenarios differ only in what the caller leaves in the COMMAREA. The COMMAREA is described by the GETSCODE copybook's group GETSORTCODEOperation (6 bytes, the whole of DFHCOMMAREA): the program's own DFHCOMMAREA cannot be laid out from GETSCODE.cbl, whose WORKING-STORAGE COPY SORTCODE REPLACING the harness's layout reader refuses. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "blank-commarea", + "commarea": {}, + "why": "the COMMAREA arrives as spaces: SORTCODE becomes '987654' (an unsigned numeric DISPLAY to alphanumeric MOVE: the digits as they are)" + }, + { + "name": "caller-sortcode-replaced", + "commarea": { + "SORTCODE": "123456" + }, + "why": "the caller's sort code is overwritten by the program's own" + }, + { + "name": "letters-replaced", + "commarea": { + "SORTCODE": "ABCDEF" + }, + "why": "non-digits from the caller: all six bytes replaced" + } + ] +} diff --git a/tests/equivalence/cbsa-inqcust/LICENSE b/tests/equivalence/cbsa-inqcust/LICENSE new file mode 100644 index 000000000..e48e09634 --- /dev/null +++ b/tests/equivalence/cbsa-inqcust/LICENSE @@ -0,0 +1,277 @@ +Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + +"Contributor" means any person or entity that Distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions Distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement +or any Secondary License (as applicable), including Contributors. + +"Derivative Works" shall mean any work, whether in Source Code or other +form, that is based on (or derived from) the Program and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. + +"Modified Works" shall mean any work in Source Code or other form that +results from an addition to, deletion from, or modification of the +contents of the Program, including, for purposes of clarity any new file +in Source Code form that contains any contents of the Program. Modified +Works shall not include works that contain only declarations, +interfaces, types, classes, structures, or files of the Program solely +in each case in order to link to, bind by name, or subclass the Program +or Modified Works thereof. + +"Distribute" means the acts of a) distributing or b) making available +in any manner that enables the transfer of a copy. + +"Source Code" means the form of a Program preferred for making +modifications, including but not limited to software source code, +documentation source, and configuration files. + +"Secondary License" means either the GNU General Public License, +Version 2.0, or any later versions of that license, including any +exceptions or additional permissions as identified by the initial +Contributor. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + +3.3 Contributors may not remove or alter any copyright, patent, +trademark, attribution notices, disclaimers of warranty, or limitations +of liability ("notices") contained within the Program from any copy of +the Program which they Distribute, provided that Contributors may add +their own appropriate notices. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product +offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes +the Program in a commercial product offering, such Contributor +("Commercial Contributor") hereby agrees to defend and indemnify every +other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits +and other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program +in a commercial product offering. The obligations in this section do not +apply to any claims or Losses relating to any actual or alleged +intellectual property infringement. In order to qualify, an Indemnified +Contributor must: a) promptly notify the Commercial Contributor in +writing of such claim, and b) allow the Commercial Contributor to control, +and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may +participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those performance +claims and warranties, and if a court requires any other Contributor to +pay any damages as a result, the Commercial Contributor must pay +those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF +TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all +risks associated with its exercise of rights under this Agreement, +including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs +or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT +PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS +SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Program itself (excluding combinations of the Program with other software +or hardware) infringes such Recipient's patent(s), then such Recipient's +rights granted under Section 2(b) shall terminate as of the date such +litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably practicable. +However, Recipient's obligations under this Agreement and any licenses +granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign the +responsibility to serve as the Agreement Steward to a suitable separate +entity. Each new version of the Agreement will be given a distinguishing +version number. The Program (including Contributions) may always be +Distributed subject to the version of the Agreement under which it was +received. In addition, after a new version of the Agreement is published, +Contributor may elect to Distribute the Program (including its +Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient +receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, by implication, +estoppel or otherwise. All rights in the Program not expressly granted +under this Agreement are reserved. Nothing in this Agreement is intended +to be enforceable by any entity that is not a Contributor or Recipient. +No third-party beneficiary rights are created under this Agreement. + +Exhibit A - Form of Secondary Licenses Notice + +"This Source Code may also be made available under the following +Secondary Licenses when the conditions for such availability set forth +in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), +version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. diff --git a/tests/equivalence/cbsa-inqcust/NOTICE b/tests/equivalence/cbsa-inqcust/NOTICE new file mode 100644 index 000000000..6c461878e --- /dev/null +++ b/tests/equivalence/cbsa-inqcust/NOTICE @@ -0,0 +1,13 @@ +CICS Bank Sample Application (CBSA) +https://github.com/cicsdev/cics-banking-sample-application-cbsa +Copyright IBM Corp. 2023 + +Licensed under the Eclipse Public License - v 2.0 (see LICENSE, the corpus's +own licence file). The programs under test, src/base/cobol_src/INQCUST.cbl and +the abend recorder it LINKs, src/base/cobol_src/ABNDPROC.cbl, and their +copybooks (INQCUST, CUSTOMER, SORTCODE, ABNDINFO) are CBSA's, used unmodified +from the corpus. + +customer.txt in this directory is synthetic test data written for this case +in the layout of CBSA's CUSTOMER copybook; it is not CBSA data. abndfile.bin +is an empty file. The scenarios in case.json are written for this case. diff --git a/tests/equivalence/cbsa-inqcust/abndfile.bin b/tests/equivalence/cbsa-inqcust/abndfile.bin new file mode 100644 index 000000000..e69de29bb diff --git a/tests/equivalence/cbsa-inqcust/case.json b/tests/equivalence/cbsa-inqcust/case.json new file mode 100644 index 000000000..2c863a04f --- /dev/null +++ b/tests/equivalence/cbsa-inqcust/case.json @@ -0,0 +1,421 @@ +{ + "kind": "cics", + "corpus": "cics-banking-sample-application-cbsa", + "program": "INQCUST", + "program_source": "src/base/cobol_src/INQCUST.cbl", + "copy_dirs": [ + "src/base/cobol_copy" + ], + "transid": "ODCS", + "clock": "2026/10/01 10:30:15.00", + "region": { + "applid": "CBSAREGN", + "sysid": "CICA" + }, + "programs": [ + { + "program": "ABNDPROC", + "program_source": "src/base/cobol_src/ABNDPROC.cbl" + } + ], + "datasets": { + "CBSA.CICSBSA.CUSTOMER": { + "input": "@case/customer.txt", + "entity": "OutputData", + "copybook": "src/base/cobol_copy/CUSTOMER.cpy", + "record": "CUSTOMER-RECORD" + }, + "CBSA.CICSBSA.ABNDFILE": { + "input": "@case/abndfile.bin", + "entity": "WsAbndArea", + "copybook": "src/base/cobol_src/ABNDPROC.cbl", + "record": "WS-ABND-AREA", + "recovery": "NONE", + "recovery_why": "etc/install/base/installjcl/BANK.csd: DEFINE FILE(ABNDFILE) ... RECOVERY(NONE) -- the abend log a backout must not undo" + } + }, + "commarea": { + "segments": [ + { + "copybook": "src/base/cobol_src/INQCUST.cbl", + "record": "DFHCOMMAREA" + } + ] + }, + "linked": true, + "screens": {}, + "notes": "CBSA's inquire-customer service (INQCUST, LINKed by BNK1DCS -- transaction ODCS -- and by INQACCCU and CREACC with the INQCUST copybook's COMMAREA). It sets 'N' / '0', keys on the program's own sort code (SORTCODE copybook, 987654; INQCUST-SCODE is ignored) and INQCUST-CUSTNO. INQCUST-CUSTNO 9999999999 or 0000000000 first finds the last customer number with a backwards browse (STARTBR at HIGH-VALUES, READPREV, ENDBR; any failure 'N' / '9' and RETURN): the number of the file's highest key, whatever its sort code. 9999999999 then reads that number; 0000000000 reads a random one, (last - 1) * FUNCTION RANDOM(EIBTASKN) + 1, drawing again (FUNCTION RANDOM with no seed) on each NOTFND up to 1,000 times. READ NORMAL fills the COMMAREA from the record, 'Y'; NOTFND gives 'N' / '1' (blanking name and address on an ordinary number; 9999999999 looks the last customer up once more); any other condition fills ABNDINFO, LINKs ABNDPROC (run in the same task: an ABNDFILE record) and ABENDs CVR1 CANCEL. Each SYSIDERR on a file command is retried after a DELAY FOR SECONDS(3), up to 100 times. FUNCTION RANDOM runs on the oracle's generator (oracle_assumptions.md C12) seeded by EIBTASKN, a stated fact of the run (X21): the random customers are the oracle's, not z/OS's. Not reached: ABEND-HANDLING (the HANDLE ABEND exit runs for an abend AFCR / AFCS / AFCT from VSAM RLS, which no fault raises; the program's own ABEND CVR1 is CANCEL) and the 100-retry ends of the SYSIDERR loops. Data: customer.txt is SYNTHETIC (CBSA generates its customers at random with BANKDATA; the corpus ships none): customers 1-5 and 8 of sort code 987654, one of 123456 and a decoy 999999/0000000003 holding the highest key; abndfile.bin is empty. CUSTOMER and ABNDFILE are compared after every scenario. Derived from the CICS Bank Sample Application (CBSA, github.com/cicsdev/cics-banking-sample-application-cbsa; Copyright IBM Corp. 2023), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own; NOTICE says what is derived.", + "scenarios": [ + { + "name": "found", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000001" + }, + "why": "READ 987654/0000000001 NORMAL: every field of the record into the COMMAREA, 'Y' / '0'" + }, + { + "name": "found-boundary-values", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000004" + }, + "why": "credit score 000, born 01/01/1900, a 22-character name and a 34-character address padded to 60 / 160" + }, + { + "name": "found-leap-day", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000003" + }, + "why": "born and reviewed on 29 February; credit score 999" + }, + { + "name": "found-after-gap", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000008" + }, + "why": "the customer after the gap (6 and 7 do not exist)" + }, + { + "name": "not-found", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000006", + "INQCUST-NAME": "Caller Name", + "INQCUST-ADDR": "Caller Address", + "INQCUST-CREDIT-SCORE": "123" + }, + "why": "READ NOTFND on an ordinary number: 'N' / '1', INQCUST-NAME and INQCUST-ADDR blanked; the rest of the COMMAREA (eyecatcher, number, credit score) left as the caller sent it" + }, + { + "name": "other-sortcode-ignored", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "123456", + "INQCUST-CUSTNO": "0000000001" + }, + "why": "INQCUST-SCODE 123456 is not the key: the program reads its own sort code 987654, so customer 987654/1 comes back and INQCUST-SCODE is overwritten with 987654" + }, + { + "name": "only-other-sortcode", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "999999", + "INQCUST-CUSTNO": "0000000003" + }, + "why": "987654/3 exists as well as the decoy 999999/3: the program's own sort code wins" + }, + { + "name": "last-customer", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "why": "9999999999: GET-LAST-CUSTOMER-VSAM -- STARTBR at HIGH-VALUES, READPREV gives the file's highest key 999999/0000000003 (another sort code: the program keeps only its number), ENDBR, 'Y'; then READ 987654/0000000003 NORMAL: customer 987654/3 returned" + }, + { + "name": "random-customer", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000000" + }, + "why": "0000000000: the last customer number (3) as above, then RANDOM-CUSTOMER = (3 - 1) * FUNCTION RANDOM(EIBTASKN) + 1 truncated to 1 or 2 (EIBTASKN 0, oracle_assumptions.md X21; the generator, C12), READ NORMAL" + }, + { + "name": "random-customer-task-12345", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000000" + }, + "taskn": 12345, + "why": "the same with EIBTASKN 12345 as RANDOM's seed" + }, + { + "name": "random-customer-retry", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000000" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "NOTFND", + "nth": 1, + "why": "13 on the first READ: GENERATE-RANDOM-CUSTOMER-AGAIN (the next FUNCTION RANDOM), the second READ NORMAL" + } + ], + "why": "random customer not found once: INQCUST-RETRY 1, a second random number, found" + }, + { + "name": "random-customer-gives-up", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000000" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "NOTFND", + "nth": "*", + "why": "13 on every READ: 1,000 retries" + } + ], + "why": "every random customer not found: after INQCUST-RETRY reaches 1000 the loop ends with 'N' / '1' (the name and address left as they were)" + }, + { + "name": "last-customer-notfound-retried", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "NOTFND", + "nth": 1, + "why": "13 on the first READ: GET-LAST-CUSTOMER-VSAM again, WS-V-RETRIED 'Y'" + } + ], + "why": "9999999999 and the READ NOTFND once: the last customer is looked up again (a second browse) and the second READ finds 987654/3" + }, + { + "name": "last-customer-notfound-twice", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "NOTFND", + "nth": "*", + "why": "13 on every READ" + } + ], + "why": "9999999999 and NOTFND on the retry too: no IF of RCV010 takes it (the retried flag is set and the number is 9999999999), so the catch-all abends: ABNDINFO filled, LINK ABNDPROC (an ABNDFILE record), ABEND CVR1 CANCEL" + }, + { + "name": "read-io-error", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000002" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "IOERR", + "nth": 1, + "why": "17 on the READ" + } + ], + "why": "READ IOERR: ABNDINFO filled from the clock and EIB (APPLID CBSAREGN, RESP 17), LINK ABNDPROC writes it to ABNDFILE, ABEND CVR1 CANCEL (no HANDLE ABEND exit)" + }, + { + "name": "read-sysiderr-retried", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000002" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "SYSIDERR", + "nth": 1, + "why": "53 on the first READ: DELAY 3 seconds, READ again" + } + ], + "why": "SYSIDERR once: the retry loop DELAYs (a task takes no time, X4) and READs again, NORMAL: 'Y'" + }, + { + "name": "read-sysiderr-then-notfound", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000007" + }, + "faults": [ + { + "cmd": "READ", + "file": "CUSTOMER", + "resp": "SYSIDERR", + "nth": 1, + "why": "53 on the first READ; the retry's READ NOTFND naturally" + } + ], + "why": "SYSIDERR then NOTFND: the loop ends on a condition other than SYSIDERR, and RCV010's NOTFND IF gives 'N' / '1'" + }, + { + "name": "startbr-fails", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "STARTBR", + "file": "CUSTOMER", + "resp": "IOERR", + "nth": 1, + "why": "17 on the STARTBR" + } + ], + "why": "STARTBR IOERR: 'N' / '9', and P010 RETURNs at once without a READ" + }, + { + "name": "startbr-notfound-random", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "0000000000" + }, + "faults": [ + { + "cmd": "STARTBR", + "file": "CUSTOMER", + "resp": "NOTFND", + "nth": 1, + "why": "13 on the STARTBR" + } + ], + "why": "the random path's browse fails the same way: 'N' / '9', RETURN" + }, + { + "name": "startbr-sysiderr-retried", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "STARTBR", + "file": "CUSTOMER", + "resp": "SYSIDERR", + "nth": 1, + "why": "53 on the first STARTBR" + } + ], + "why": "SYSIDERR on STARTBR once: DELAY, STARTBR again NORMAL, the browse goes on: 'Y', customer 987654/3" + }, + { + "name": "readprev-fails", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "READPREV", + "file": "CUSTOMER", + "resp": "IOERR", + "nth": 1, + "why": "17 on the READPREV" + } + ], + "why": "READPREV IOERR: 'N' / '9', RETURN (the browse is left open; the task ends it)" + }, + { + "name": "readprev-sysiderr-retried", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "READPREV", + "file": "CUSTOMER", + "resp": "SYSIDERR", + "nth": 1, + "why": "53 on the first READPREV" + } + ], + "why": "SYSIDERR on READPREV once: DELAY, READPREV again, the last record read" + }, + { + "name": "endbr-fails-ignored", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "ENDBR", + "file": "CUSTOMER", + "resp": "IOERR", + "nth": 1, + "why": "17 on the ENDBR" + } + ], + "why": "ENDBR IOERR: the program tests ENDBR's RESP only inside its SYSIDERR IF (the END-IF is missing, so the test sits under that IF), so the failure is ignored: 'Y' and the READ goes on" + }, + { + "name": "endbr-sysiderr-then-fails", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "ENDBR", + "file": "CUSTOMER", + "resp": "SYSIDERR", + "nth": 1, + "why": "53 on the first ENDBR" + }, + { + "cmd": "ENDBR", + "file": "CUSTOMER", + "resp": "IOERR", + "nth": 2, + "why": "17 on the retried ENDBR" + } + ], + "why": "SYSIDERR on ENDBR, then IOERR on the retry: the loop ends, the RESP test inside the IF gives 'N' / '9', RETURN" + }, + { + "name": "endbr-sysiderr-retried", + "commarea": { + "INQCUST-EYE": "CUST", + "INQCUST-SCODE": "987654", + "INQCUST-CUSTNO": "9999999999" + }, + "faults": [ + { + "cmd": "ENDBR", + "file": "CUSTOMER", + "resp": "SYSIDERR", + "nth": 1, + "why": "53 on the first ENDBR" + } + ], + "why": "SYSIDERR on ENDBR once, then NORMAL: 'Y'" + } + ] +} diff --git a/tests/equivalence/cbsa-inqcust/customer.txt b/tests/equivalence/cbsa-inqcust/customer.txt new file mode 100644 index 000000000..6646984a0 --- /dev/null +++ b/tests/equivalence/cbsa-inqcust/customer.txt @@ -0,0 +1,8 @@ +CUST1234560000000001Mr Other Branch 1 Another Sortcode Road, Leeds 0202198230002202027 +CUST9876540000000001Mr Alan B Smith 12 High Street, Winchester, SO23 9AA 1103195241201102026 +CUST9876540000000002Mrs Carol D Jones 4 Station Road, Romsey, SO51 7AB 0506196069915102026 +CUST9876540000000003Dr Edward F Green 7 The Close, Salisbury, SP1 2EB 2902196499929022028 +CUST9876540000000004Professor Gail H Brown 21 College Street, Oxford, OX1 3AB 0101190000031122026 +CUST9876540000000005Ms Hannah I Patel 88 Harbour View, Southampton, SO14 2AQ 3112199900101012027 +CUST9876540000000008Lady Isobel J Wright The Manor House, Chilworth, SO16 7JF 1508197585030062027 +CUST9999990000000003Mr Decoy K Highest Top Of The File Lane, Basingstoke 2004198855512122026 diff --git a/tests/equivalence/det_sweep_coverage.json b/tests/equivalence/det_sweep_coverage.json index ce893ae0e..92169c356 100644 --- a/tests/equivalence/det_sweep_coverage.json +++ b/tests/equivalence/det_sweep_coverage.json @@ -15,10 +15,21 @@ "inputs": { "case": "91757418376cfc30e9db683b2ada855ac31d6afa3c9943afa40231330d981904", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-csstats2": { "scenarios": 3, @@ -33,10 +44,21 @@ "inputs": { "case": "2ae5f7216cdf6b58f3594aef91fce8f9de1290c1a5427ba6806b0089191ee188", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-csstatus": { "scenarios": 3, @@ -51,10 +73,21 @@ "inputs": { "case": "3080576e0121cd5ea20ea47dff4371dc63e2609c9517ea2c267c6e289d17a26e", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-getaddr": { "scenarios": 3, @@ -69,10 +102,21 @@ "inputs": { "case": "daaa802061c35c541cc4904b8bdb26ad4102e4590fd07d7488e894b6f4bd2dbc", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-getname": { "scenarios": 3, @@ -87,10 +131,21 @@ "inputs": { "case": "f6ca718be0ee1b2d7819adce6f3bfbc7a96ec371aed930ded05416e3a4fe5cc8", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-getpol": { "scenarios": 1, @@ -105,10 +160,21 @@ "inputs": { "case": "8715eb31cb1fe3d43aec7c2ce9de9d3b6e643b65113edc51fb979c8d39d43e21", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-getspnd": { "scenarios": 1, @@ -123,10 +189,21 @@ "inputs": { "case": "3f15c0e7364770e323f6e9c65487c146dbfba37ff81f38d42b9aebc930125c49", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "asynccc-updcsdb": { "scenarios": 1, @@ -141,10 +218,21 @@ "inputs": { "case": "6f6238b16a7d8e202086190913f64017584104833d6a343623c615faa618d8ac", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-acctupdate": { "scenarios": 137, @@ -159,10 +247,21 @@ "inputs": { "case": "74c40a4c7c1afe285663eaf7c8888e2e8c4b1a8ba3c026dd65ab460947b44121", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-acctview": { "scenarios": 20, @@ -177,10 +276,21 @@ "inputs": { "case": "148af5f69abed6acc72e8cd672a301fd075be981f27b382789fbe3c9da821e48", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-acctview-generated": { "scenarios": 24, @@ -195,10 +305,21 @@ "inputs": { "case": "f301f2748f2e5be2861c5f876163d8ed413c11a974694bcd5927ae1be8eed84f", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-adminmenu": { "scenarios": 16, @@ -213,10 +334,21 @@ "inputs": { "case": "f6d6e0043ca8d45a2ad195ece5fd6caba411960fc93a0f95249e1da6bbe0f4f5", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-billpay": { "scenarios": 25, @@ -231,10 +363,21 @@ "inputs": { "case": "6790dbfc07f6ecf4a4528681eaae2540f3202ace69aaf19f006b839f6d8eee0f", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-cardlist": { "scenarios": 45, @@ -249,10 +392,21 @@ "inputs": { "case": "41aab797f096a9ada81c3d81271755ee7eff20a7adc3209b65d8cd4eba3bc4fe", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-cardview": { "scenarios": 23, @@ -267,10 +421,21 @@ "inputs": { "case": "b37f0899733d7de92a4017cf0106742dd43c347fd3c0c632fa098cf5b96e5ebc", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-cotrtlic": { "scenarios": 27, @@ -285,16 +450,16 @@ "inputs": { "case": "0a2e4bde071d15909a45ecae9770b8a578519ddeca50aef5846966740ed76a36", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -302,7 +467,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-cotrtupc": { "scenarios": 38, @@ -317,16 +482,16 @@ "inputs": { "case": "c9136c4e3c7315197bc090d622aeac23563ff7303bb6e7789052a3a25b51049c", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -334,7 +499,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-menu": { "scenarios": 16, @@ -349,10 +514,21 @@ "inputs": { "case": "0438494a837c763cc0022729ec4d25806bf2d816126c90ad6a6d4f43357742c4", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-report": { "scenarios": 25, @@ -367,10 +543,21 @@ "inputs": { "case": "8a510ec12c46620c50eee6e60d38aa06906b342d505bb3e642bb192431f1807f", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-signon": { "scenarios": 12, @@ -385,10 +572,21 @@ "inputs": { "case": "6da932f72dab5e337afb7ca239187f663dfc6fc2f33ba85d70274f0c14b668f5", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-tranadd": { "scenarios": 46, @@ -403,10 +601,21 @@ "inputs": { "case": "9df37db4a0702e02d26ba7d7a796a58e66337983e82ae4b3d85ff26d603a2c97", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-tranlist": { "scenarios": 32, @@ -421,10 +630,21 @@ "inputs": { "case": "26d55c02be72d7e541fb1ba16200ddd216cfea867b1613f27014b5d9046dd269", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "carddemo-tranview": { "scenarios": 15, @@ -437,102 +657,531 @@ "total": 24 }, "inputs": { - "case": "686b990dfac2293199c4dc988e314d6af1862801451996285a672c8349e22b72", - "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "case": "686b990dfac2293199c4dc988e314d6af1862801451996285a672c8349e22b72", + "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "carddemo-useradd": { + "scenarios": 13, + "paragraphs": { + "covered": 9, + "live": 9 + }, + "branches": { + "covered": 20, + "total": 21 + }, + "inputs": { + "case": "eeb720c9fbca47d93908d195a995bb9648b61b2771a74b868fe369923fb354b0", + "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "carddemo-userdel": { + "scenarios": 18, + "paragraphs": { + "covered": 11, + "live": 11 + }, + "branches": { + "covered": 30, + "total": 32 + }, + "inputs": { + "case": "f0901f27a92b6d4b75715c8be41873d4812c515480a030e5e3dd49b063dcd987", + "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "carddemo-userlist": { + "scenarios": 32, + "paragraphs": { + "covered": 16, + "live": 16 + }, + "branches": { + "covered": 95, + "total": 100 + }, + "inputs": { + "case": "ba56996a6dacc7ccc8c563aa388d6b41b4d9d737635e307d6a43dcc5ab0f1ba9", + "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "carddemo-userupd": { + "scenarios": 23, + "paragraphs": { + "covered": 11, + "live": 11 + }, + "branches": { + "covered": 44, + "total": 46 + }, + "inputs": { + "case": "e238391fd58103ac8de1cdc28aa80e428812ecb22d4e95cfd76857bee018877d", + "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-abndproc": { + "scenarios": 8, + "paragraphs": { + "covered": 4, + "live": 4 + }, + "branches": { + "covered": 2, + "total": 2 + }, + "inputs": { + "case": "32bd7606058e44fc1976bab563073741b843e99ed4e8c2f2382ba46221ee0c26", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-acctctrl": { + "scenarios": 4, + "paragraphs": { + "covered": 7, + "live": 7 + }, + "branches": { + "covered": 2, + "total": 2 + }, + "inputs": { + "case": "3b7450dfa9cc27a5387c3d09c9fa2d0e39dee7c49a1371d866dae707b23f079f", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-bnk1cac": { + "scenarios": 33, + "paragraphs": { + "covered": 25, + "live": 25 + }, + "branches": { + "covered": 60, + "total": 97 + }, + "inputs": { + "case": "88a6d3524ff2753fc2a66b877097bfd88b81d03a9cd3008f95dcfcd369bd83e7", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-bnk1cra": { + "scenarios": 25, + "paragraphs": { + "covered": 28, + "live": 28 + }, + "branches": { + "covered": 52, + "total": 67 + }, + "inputs": { + "case": "1ee7b6b6c0bce6bce8f682841890141ff77d66ddb0dcde60077ba1351f8f0501", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-bnk1dac": { + "scenarios": 22, + "paragraphs": { + "covered": 31, + "live": 31 + }, + "branches": { + "covered": 44, + "total": 60 + }, + "inputs": { + "case": "7b1efa2c09f108cc6a305420d3419e25b952c4b42397bbae2c12fe926fc3e649", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-bnk1dcs": { + "scenarios": 22, + "paragraphs": { + "covered": 46, + "live": 51 + }, + "branches": { + "covered": 62, + "total": 102 + }, + "inputs": { + "case": "ed28dbe543f959aaeb9ebf1a1319d813bb54456be53d3176c5ba96363e9513bd", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-bnkmenu": { + "scenarios": 18, + "paragraphs": { + "covered": 19, + "live": 25 + }, + "branches": { + "covered": 35, + "total": 62 + }, + "inputs": { + "case": "610956a6010efba7313e8e18a82f0e14c3698ff792cd1fad6d2fbdc4147e2969", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-crdtagy1": { + "scenarios": 7, + "paragraphs": { + "covered": 4, + "live": 7 + }, + "branches": { + "covered": 4, + "total": 6 + }, + "inputs": { + "case": "bf56e9614f14453a444f63b7fb51d91f935cf7c4d4e41d60b7acba28d4e8fdf8", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, - "carddemo-useradd": { - "scenarios": 13, + "cbsa-crdtagy2": { + "scenarios": 7, "paragraphs": { - "covered": 9, - "live": 9 + "covered": 4, + "live": 7 }, "branches": { - "covered": 20, - "total": 21 + "covered": 4, + "total": 6 }, "inputs": { - "case": "eeb720c9fbca47d93908d195a995bb9648b61b2771a74b868fe369923fb354b0", - "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "case": "dc971ed1c22b4306ad8151ea2c9ff018c72bd388924bd03b5c28c3fc23490ceb", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, - "carddemo-userdel": { - "scenarios": 18, + "cbsa-crdtagy3": { + "scenarios": 7, "paragraphs": { - "covered": 11, - "live": 11 + "covered": 4, + "live": 7 }, "branches": { - "covered": 30, - "total": 32 + "covered": 4, + "total": 6 }, "inputs": { - "case": "f0901f27a92b6d4b75715c8be41873d4812c515480a030e5e3dd49b063dcd987", - "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "case": "c102fb49386e61ad00f95359ef88ec35b1aaf06530b7d0c0b1fd26d671de2383", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, - "carddemo-userlist": { - "scenarios": 32, + "cbsa-crdtagy4": { + "scenarios": 7, "paragraphs": { - "covered": 16, - "live": 16 + "covered": 4, + "live": 7 }, "branches": { - "covered": 95, - "total": 100 + "covered": 4, + "total": 6 }, "inputs": { - "case": "ba56996a6dacc7ccc8c563aa388d6b41b4d9d737635e307d6a43dcc5ab0f1ba9", - "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "case": "90bb0317a3cd68b33b8eeb4561594fb08399dd48a003dbdf770c5ce048902fe7", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, - "carddemo-userupd": { - "scenarios": 23, + "cbsa-crdtagy5": { + "scenarios": 7, "paragraphs": { - "covered": 11, - "live": 11 + "covered": 4, + "live": 7 }, "branches": { - "covered": 44, - "total": 46 + "covered": 4, + "total": 6 }, "inputs": { - "case": "e238391fd58103ac8de1cdc28aa80e428812ecb22d4e95cfd76857bee018877d", - "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "case": "dc932eab698dacdfbbce5edadc16263a6f83b533d9fb65b3987b10e0179716f0", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, - "cbsa-abndproc": { - "scenarios": 8, + "cbsa-creacc": { + "scenarios": 26, "paragraphs": { - "covered": 4, - "live": 4 + "covered": 34, + "live": 34 }, "branches": { - "covered": 2, - "total": 2 + "covered": 26, + "total": 38 }, "inputs": { - "case": "32bd7606058e44fc1976bab563073741b843e99ed4e8c2f2382ba46221ee0c26", + "case": "6bd1f7e004e6e0df88be2e99b0e91dd0c87399d3aaca4b41369bf2a97ab3a118", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-custctrl": { "scenarios": 6, @@ -547,16 +1196,16 @@ "inputs": { "case": "5abdcd4d81aa4bec7b6474e7659207b876d49926c72fd8262536ac45df3dd604", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -564,7 +1213,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-dbcrfun": { "scenarios": 25, @@ -579,16 +1228,16 @@ "inputs": { "case": "01ea326724a638ab18518bcd9da7b7701545b804756ea1e33a5204248ebdd1ae", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -596,7 +1245,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-delacc": { "scenarios": 14, @@ -611,16 +1260,16 @@ "inputs": { "case": "2049daea2586d2211c74ebfb5831a707bb965c4de0ee7bbf6e08f1e30b891c4a", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -628,7 +1277,65 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-getcompy": { + "scenarios": 3, + "paragraphs": { + "covered": 2, + "live": 2 + }, + "branches": { + "covered": 0, + "total": 0 + }, + "inputs": { + "case": "cc7483b5fbfd9bcfe7b4f56bfb3a0e8767f4d722990c0f41683851f97a34614f", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-getscode": { + "scenarios": 3, + "paragraphs": { + "covered": 2, + "live": 2 + }, + "branches": { + "covered": 0, + "total": 0 + }, + "inputs": { + "case": "f3c639db397c01ea468144e68fbea43c86cef76de6ebfabb17ef5d54e046664e", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-inqacc": { "scenarios": 17, @@ -643,16 +1350,16 @@ "inputs": { "case": "a39d307ace7093196d4217da06487c426d80acc673d572f5697f7a0c8d23af97", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -660,7 +1367,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-inqacccu": { "scenarios": 10, @@ -673,18 +1380,18 @@ "total": 33 }, "inputs": { - "case": "dde934faa4dddad5a722997a2e4420a87602a7a08489fbc4df0d73235a412170", + "case": "7c95d9a6da3f6fb7886251c4eff783c8ba0efecb140ae8ea2ed754be6a7f10f2", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -692,7 +1399,36 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" + }, + "cbsa-inqcust": { + "scenarios": 25, + "paragraphs": { + "covered": 22, + "live": 25 + }, + "branches": { + "covered": 39, + "total": 46 + }, + "inputs": { + "case": "8171ccd53b3cf82c99fe1d999218a3c2d1205fe14557d7656cb114a21b751840", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-updacc": { "scenarios": 12, @@ -707,16 +1443,16 @@ "inputs": { "case": "d0e0d5193ee3b4c8761dd37a70edb3fe5e1d78c5a785ea583e685637a21047f3", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -724,7 +1460,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-updacc-generated": { "scenarios": 42, @@ -739,16 +1475,16 @@ "inputs": { "case": "28a4504359e22c2086f18e990f009dc5165131b6a7a0e270bb16f6325ec3c809", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -756,7 +1492,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-updcust": { "scenarios": 23, @@ -771,10 +1507,21 @@ "inputs": { "case": "c9c76116b6cbd83fb929db7bd58a606bee9479b3baaeec72d146138e5f1af90b", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "cbsa-xfrfun": { "scenarios": 27, @@ -789,16 +1536,16 @@ "inputs": { "case": "7ffdb8e87cf7a2805e24f593a534b1869317be541532206beca022599b11b056", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -806,7 +1553,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgacdb01": { "scenarios": 9, @@ -821,16 +1568,16 @@ "inputs": { "case": "37cc5ef4a703e9ce68c3af911e05ff60e2b240929a74ad17ef9bdb9598516a1d", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -838,7 +1585,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgacdb02": { "scenarios": 11, @@ -853,16 +1600,16 @@ "inputs": { "case": "a3ae0bfb1c47fd295bc6814406a2d998597903c43943999916a5aefc93eebb76", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -870,7 +1617,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgacus01": { "scenarios": 8, @@ -885,16 +1632,16 @@ "inputs": { "case": "16cdc4380ec73103a58e910c4bcf550bd8ece5fa5d2a8a6011b0ff349a134bb2", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -902,7 +1649,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgacvs01": { "scenarios": 4, @@ -917,10 +1664,21 @@ "inputs": { "case": "7a9aee118822b1c0f218acf7f1ad3553bbd5a9c1280afc739c872cc0bb62da82", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgapdb01": { "scenarios": 9, @@ -935,16 +1693,16 @@ "inputs": { "case": "aecc23b4f7c314678ce7199f8545341463d983410250042c3707999ebf57d568", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -952,7 +1710,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgapol01": { "scenarios": 11, @@ -967,16 +1725,16 @@ "inputs": { "case": "ffc47517d1d74e993655996224e0b849723352d24c4dfd1599a6654ea5a26e37", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -984,7 +1742,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgapvs01": { "scenarios": 8, @@ -999,10 +1757,21 @@ "inputs": { "case": "43ffec29fa8c2a0550158fe549d117033843e9741c072eae52f4d08209b5d2a0", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgdpdb01": { "scenarios": 12, @@ -1017,16 +1786,16 @@ "inputs": { "case": "551cd3e514845511da462dd0e64d6542d64ae2b98d2756cd8d31e2f4c9f0c373", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1034,7 +1803,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgdpol01": { "scenarios": 12, @@ -1049,16 +1818,16 @@ "inputs": { "case": "67788f130859e7133e38afd28040067b4991bd82dd85899af68c5f83ddd087f4", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1066,7 +1835,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgdpvs01": { "scenarios": 5, @@ -1081,10 +1850,21 @@ "inputs": { "case": "8a3174bea8c2259e48d9c4c15be5d32cc8dde55ad7ed1efc0e8da51b7b2f834a", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgicdb01": { "scenarios": 13, @@ -1099,16 +1879,16 @@ "inputs": { "case": "006fc6e96c5aa78ac54aa15f16be202c12f90beb19cc4118a6bf54ee6c29fd3a", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1116,7 +1896,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgicus01": { "scenarios": 6, @@ -1131,16 +1911,16 @@ "inputs": { "case": "074288471e471cf90c5472bf9ea5d5596fb609263f6525077b0780f52abac6d1", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1148,7 +1928,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgicvs01": { "scenarios": 4, @@ -1163,10 +1943,21 @@ "inputs": { "case": "15a809097e6d8d3332394ed40e44b11f491a1eaefbb7cab0e600c5fff932e391", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgipdb01": { "scenarios": 55, @@ -1181,16 +1972,16 @@ "inputs": { "case": "ed0171d8c5324bfa7a5abd7a11613602d4192660eb6cb0045e52558a87068431", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1198,7 +1989,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgipol01": { "scenarios": 19, @@ -1213,16 +2004,16 @@ "inputs": { "case": "3170aa8e78add78f126b840b0f53b97b972b8256152628fcaa96cd3b4cb09542", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1230,7 +2021,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgtestp1": { "scenarios": 25, @@ -1245,16 +2036,16 @@ "inputs": { "case": "279bec374666eb6c9efa433944623c1d7d27b875beaeedff3481b353029753f2", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1262,7 +2053,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgtestp2": { "scenarios": 25, @@ -1277,16 +2068,16 @@ "inputs": { "case": "ce7930ab323b0e2402f4bf45e91652c05d865f610b10e483f7bd6dd69c6e4077", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1294,7 +2085,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgtestp3": { "scenarios": 25, @@ -1309,16 +2100,16 @@ "inputs": { "case": "d03feebada23dc73a38c5d1531661b89898a25737670736cf7566ee05c35c07b", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1326,7 +2117,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgtestp4": { "scenarios": 25, @@ -1341,16 +2132,16 @@ "inputs": { "case": "2ed102e31e3e0e02df5613652300c45c05626ba3eeae358d57f8a7ff19fb1023", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1358,7 +2149,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgucdb01": { "scenarios": 7, @@ -1373,16 +2164,16 @@ "inputs": { "case": "d690be3b361358cb5c8ce9e490a5281f4b2aa164b023d5c18c09fec94fc4a651", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1390,7 +2181,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgucus01": { "scenarios": 6, @@ -1405,16 +2196,16 @@ "inputs": { "case": "b0924415e4f8a1139a9e1683cc4095d4ac68c4e29d023be30f74d871be9ffeb8", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1422,7 +2213,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgucvs01": { "scenarios": 5, @@ -1437,10 +2228,21 @@ "inputs": { "case": "6c9fc448075615eac423f7057a1c705f03c1fd1b91eba79416f996588ddaca0f", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgupdb01": { "scenarios": 12, @@ -1455,16 +2257,16 @@ "inputs": { "case": "74984f1fdb517f9a636a73d3f6c0f39a47c059c5d0f9d5042e80af4e0a808992", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1472,7 +2274,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgupol01": { "scenarios": 17, @@ -1487,16 +2289,16 @@ "inputs": { "case": "7d3d9ff7153e409cae28bc1c0c4e9b3c0c548d6050d7c31b378bfffaebe84bbc", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1504,7 +2306,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "genapp-lgupvs01": { "scenarios": 6, @@ -1519,10 +2321,21 @@ "inputs": { "case": "c9ce6f6f6962d4c7aee349ab8ad98699a1fcc799bbe1bb91c8e7f485a68221cb", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "mortgage-cmort": { "scenarios": 9, @@ -1537,16 +2350,16 @@ "inputs": { "case": "bd85a34c697e713b92f53b2de2fd71639c0622ffcc2b9f6fe4d2f02ed1495c9d", "corpus": "1143e0fef7c983b7ade463d33d49481f5572d79e8f95593a2219fdb494a1e7f2", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", @@ -1554,7 +2367,7 @@ } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "mortgage-mlist": { "scenarios": 9, @@ -1569,10 +2382,21 @@ "inputs": { "case": "1bc8cc50bfabc9561912399023b410c2636605f171281cb2178b4cb3b2a4d1d7", "corpus": "1143e0fef7c983b7ade463d33d49481f5572d79e8f95593a2219fdb494a1e7f2", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" }, "mortgage-mlist-generated": { "scenarios": 12, @@ -1587,10 +2411,21 @@ "inputs": { "case": "dc611e5eee78003db958b63aeccfb19b7a44339ebb8d6dd114b8788df570cef9", "corpus": "1143e0fef7c983b7ade463d33d49481f5572d79e8f95593a2219fdb494a1e7f2", - "harness": "1c4cdf6457fd98cfe726a6c8c6cfdfdbb51323fb6ff1e2b71b367214c4dea3f4", - "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec" + "harness": "6e468d82571e22e25ce2e3cf9a8a0e6ad94f203a53c33ce9bbace7146b98f773", + "oracle": "baf3bfc2d245d0466d0d7e5d1a14e9bd8aa861f6b5681f44ba788e7f5af7c5ec", + "components": { + "harness": { + "harness:cics": "0ee787115a172ad567952030ca07fab547ee6dd6555c399b2aa33907287ecdc5", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } }, - "measured_at": "ac3a8a2b0d34f355673c4dd569fb1c3545656b64" + "measured_at": "2699a86ef1713502edc72769f43708b052dc4e92" } } } From 8a6189fc840ade31898f0b37b18bcab728f2807f Mon Sep 17 00:00:00 2001 From: squid-protocol Date: Fri, 9 Oct 2026 17:38:48 -0400 Subject: [PATCH 3/3] Merge origin/main into equiv/4270-cbsa-whole-cases; ledger re-applied from the 24-case sweep under the merged harness Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01TBJdDBRtJis5hzE244NQKV --- tests/equivalence/det_sweep_coverage.json | 514 ++++++++++++++++++++-- 1 file changed, 482 insertions(+), 32 deletions(-) diff --git a/tests/equivalence/det_sweep_coverage.json b/tests/equivalence/det_sweep_coverage.json index 4f85f1e92..456e9bcb7 100644 --- a/tests/equivalence/det_sweep_coverage.json +++ b/tests/equivalence/det_sweep_coverage.json @@ -218,11 +218,11 @@ "inputs": { "case": "4113ce9fb107671dbed8b0d5944489d393500fcc8170c4c348abf263d7c305dc", "corpus": "a98b9cfe46b5f45db9305f0a997047218e09c7c36422ec0849f6af7af5dd5353", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" }, "oracle": { @@ -232,7 +232,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "asynccc-updcsdb": { "scenarios": 1, @@ -479,11 +479,11 @@ "inputs": { "case": "4a6062284bd779add2f4a0feb44b6058a1fc74409478c9ee8081ca1c088c247c", "corpus": "d0c4803872ec126eb56a170212f76207beff5ab8c2b6507dd6df4a084cdeb919", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, @@ -496,7 +496,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "carddemo-cotrtlic": { "scenarios": 27, @@ -881,6 +881,369 @@ }, "measured_at": "8130b9a928c8690aa77504c10bb83c62409a70f0" }, + "cbsa-acctctrl": { + "scenarios": 4, + "paragraphs": { + "covered": 7, + "live": 7 + }, + "branches": { + "covered": 2, + "total": 2 + }, + "inputs": { + "case": "3b7450dfa9cc27a5387c3d09c9fa2d0e39dee7c49a1371d866dae707b23f079f", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "7c1f6122a8a6152da8487f8e1eccaab1dc94d8adce4e2dca181dcd0aa0b55aae", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-bnk1cac": { + "scenarios": 33, + "paragraphs": { + "covered": 25, + "live": 25 + }, + "branches": { + "covered": 60, + "total": 97 + }, + "inputs": { + "case": "88a6d3524ff2753fc2a66b877097bfd88b81d03a9cd3008f95dcfcd369bd83e7", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "7c1f6122a8a6152da8487f8e1eccaab1dc94d8adce4e2dca181dcd0aa0b55aae", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-bnk1cra": { + "scenarios": 25, + "paragraphs": { + "covered": 28, + "live": 28 + }, + "branches": { + "covered": 52, + "total": 67 + }, + "inputs": { + "case": "1ee7b6b6c0bce6bce8f682841890141ff77d66ddb0dcde60077ba1351f8f0501", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "7c1f6122a8a6152da8487f8e1eccaab1dc94d8adce4e2dca181dcd0aa0b55aae", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-bnk1dac": { + "scenarios": 22, + "paragraphs": { + "covered": 31, + "live": 31 + }, + "branches": { + "covered": 44, + "total": 60 + }, + "inputs": { + "case": "7b1efa2c09f108cc6a305420d3419e25b952c4b42397bbae2c12fe926fc3e649", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "7c1f6122a8a6152da8487f8e1eccaab1dc94d8adce4e2dca181dcd0aa0b55aae", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-bnk1dcs": { + "scenarios": 22, + "paragraphs": { + "covered": 46, + "live": 51 + }, + "branches": { + "covered": 62, + "total": 102 + }, + "inputs": { + "case": "ed28dbe543f959aaeb9ebf1a1319d813bb54456be53d3176c5ba96363e9513bd", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-bnkmenu": { + "scenarios": 18, + "paragraphs": { + "covered": 19, + "live": 25 + }, + "branches": { + "covered": 35, + "total": 62 + }, + "inputs": { + "case": "610956a6010efba7313e8e18a82f0e14c3698ff792cd1fad6d2fbdc4147e2969", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-crdtagy1": { + "scenarios": 7, + "paragraphs": { + "covered": 4, + "live": 7 + }, + "branches": { + "covered": 4, + "total": 6 + }, + "inputs": { + "case": "bf56e9614f14453a444f63b7fb51d91f935cf7c4d4e41d60b7acba28d4e8fdf8", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-crdtagy2": { + "scenarios": 7, + "paragraphs": { + "covered": 4, + "live": 7 + }, + "branches": { + "covered": 4, + "total": 6 + }, + "inputs": { + "case": "dc971ed1c22b4306ad8151ea2c9ff018c72bd388924bd03b5c28c3fc23490ceb", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-crdtagy3": { + "scenarios": 7, + "paragraphs": { + "covered": 4, + "live": 7 + }, + "branches": { + "covered": 4, + "total": 6 + }, + "inputs": { + "case": "c102fb49386e61ad00f95359ef88ec35b1aaf06530b7d0c0b1fd26d671de2383", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-crdtagy4": { + "scenarios": 7, + "paragraphs": { + "covered": 4, + "live": 7 + }, + "branches": { + "covered": 4, + "total": 6 + }, + "inputs": { + "case": "90bb0317a3cd68b33b8eeb4561594fb08399dd48a003dbdf770c5ce048902fe7", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-crdtagy5": { + "scenarios": 7, + "paragraphs": { + "covered": 4, + "live": 7 + }, + "branches": { + "covered": 4, + "total": 6 + }, + "inputs": { + "case": "dc932eab698dacdfbbce5edadc16263a6f83b533d9fb65b3987b10e0179716f0", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-creacc": { + "scenarios": 26, + "paragraphs": { + "covered": 34, + "live": 34 + }, + "branches": { + "covered": 26, + "total": 38 + }, + "inputs": { + "case": "6bd1f7e004e6e0df88be2e99b0e91dd0c87399d3aaca4b41369bf2a97ab3a118", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", + "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:db2": "7c1f6122a8a6152da8487f8e1eccaab1dc94d8adce4e2dca181dcd0aa0b55aae", + "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, "cbsa-custctrl": { "scenarios": 6, "paragraphs": { @@ -977,6 +1340,64 @@ }, "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" }, + "cbsa-getcompy": { + "scenarios": 3, + "paragraphs": { + "covered": 2, + "live": 2 + }, + "branches": { + "covered": 0, + "total": 0 + }, + "inputs": { + "case": "cc7483b5fbfd9bcfe7b4f56bfb3a0e8767f4d722990c0f41683851f97a34614f", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-getscode": { + "scenarios": 3, + "paragraphs": { + "covered": 2, + "live": 2 + }, + "branches": { + "covered": 0, + "total": 0 + }, + "inputs": { + "case": "f3c639db397c01ea468144e68fbea43c86cef76de6ebfabb17ef5d54e046664e", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, "cbsa-inqacc": { "scenarios": 17, "paragraphs": { @@ -1020,26 +1441,55 @@ "total": 33 }, "inputs": { - "case": "dde934faa4dddad5a722997a2e4420a87602a7a08489fbc4df0d73235a412170", + "case": "7c95d9a6da3f6fb7886251c4eff783c8ba0efecb140ae8ea2ed754be6a7f10f2", "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", - "harness": "471da1a6023b0d9d8fa4455d1c515ea30a922cf5d57a8094b29d6a7dcb43c5c2", - "oracle": "34a717aa90b1cd8c166787b6d0fb4b64b1022f6ea52b7e73ecd1ef0d4a0c8a47", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "d9343f022b54fb2d747835e7f0a6b729ab6459021e0e7cebbd23e7b08ad35633", - "harness:core": "29dd5f0e0497bb1174101523cd762381b159a9fd2788daa33ecacea870873222", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, "oracle": { - "oracle:cics-stub": "734ce68def43267c4c47d9f52010c3fa50d89546d46471ad0fb8ded17fe6d93d", + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", - "oracle:db2": "abbe60be09a4a5b584cb16d8dad42785bea77477d14c0fea172a672783141a95", + "oracle:db2": "7c1f6122a8a6152da8487f8e1eccaab1dc94d8adce4e2dca181dcd0aa0b55aae", "oracle:image-db2": "f9bf98a288533e3ee12980219ecc52006e2dab05f7706dfc35238f26add8f3c5", "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" } } }, - "measured_at": "2b53e918c59de134e98e0ab795255afabd21437e" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" + }, + "cbsa-inqcust": { + "scenarios": 25, + "paragraphs": { + "covered": 22, + "live": 25 + }, + "branches": { + "covered": 39, + "total": 46 + }, + "inputs": { + "case": "8171ccd53b3cf82c99fe1d999218a3c2d1205fe14557d7656cb114a21b751840", + "corpus": "7a4c86e6d6688f1516ec00cbd81941457457c861bf900e2b3a7f269c6bf9058b", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", + "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", + "components": { + "harness": { + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", + "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" + }, + "oracle": { + "oracle:cics-stub": "bc775559c67aa6be495b36ee8f8c33ebb0e4f69b34aa17b27403482634712a14", + "oracle:core": "096391873ad77e887554d240e0df2b301cb4b8bcf0b50902f390f46904d4e8a6", + "oracle:le": "f0edcba040c849b46a2420112690eb6aaeb522a50ef9efe874594fed5d13f591" + } + } + }, + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "cbsa-updacc": { "scenarios": 12, @@ -1397,11 +1847,11 @@ "inputs": { "case": "0a61a1e0ff664600970ba736dcc5b49f7109d99aa203f5a988b3448d2bb2484a", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" }, "oracle": { @@ -1411,7 +1861,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "genapp-lgdpdb01": { "scenarios": 12, @@ -1676,11 +2126,11 @@ "inputs": { "case": "4fec5a8fd26e151f9869557a3ad6d7986079cac7f74cc65b46d32591280f14bd", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" }, "oracle": { @@ -1690,7 +2140,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "genapp-lgsetup": { "scenarios": 2, @@ -1705,11 +2155,11 @@ "inputs": { "case": "a51844f64be6062f30b12423fe808fde3e55de5553961a8d723a92c15fb41633", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" }, "oracle": { @@ -1719,7 +2169,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "genapp-lgtestc1": { "scenarios": 18, @@ -1734,11 +2184,11 @@ "inputs": { "case": "dcc50e1c6dc34a3b1cd7c3fcd362990e86fe9f272b24ef833d7a0ea2ea31e490", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39", "harness:db2": "24242ee159a28947ccf92c123d2f90a9c25c106b0589875fd6dc9a3332a801fe" }, @@ -1751,7 +2201,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "genapp-lgtestp1": { "scenarios": 25, @@ -2080,11 +2530,11 @@ "inputs": { "case": "491147b6f561ca922e216842d82e18bd5128bfb1e6c33f33b8bdf7091aac087f", "corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" }, "oracle": { @@ -2094,7 +2544,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" }, "mortgage-cmort": { "scenarios": 9, @@ -2199,11 +2649,11 @@ "inputs": { "case": "d0dc0032d22ec04d8b390e1ec8a39ecf4060e83b9d1687a43ecefe62ef45fd26", "corpus": "09feecf8028c77a136bbff56380f9babddf0b2e28fbb6a7ad7ba456273989ff6", - "harness": "de02ccecbdaf08d0486082ee759f7243000751df69c42588e269caa3ae9ff7a9", + "harness": "76481be4ecaac97486006f4e7894b4f6d7283de94f5b6fc75bf665636ea4094d", "oracle": "017ca3ab867f90c323aecd5bdb30ee1d4f27688f7de2473970bd950461c8a734", "components": { "harness": { - "harness:cics": "5d4932224e4abb32875633b50ccf59c4ec696a84a5efea87d7f4af11b0ebcf3d", + "harness:cics": "a11b5bed3308a4f8ff333362880713379de8fc0748bc20c85dc713c77641356e", "harness:core": "af315f3088e082a3e3b4aab8d88c95d825a05c8cb934a0e0c77f6a3500303b39" }, "oracle": { @@ -2213,7 +2663,7 @@ } } }, - "measured_at": "2d5f0d9dd3cd5d7a64bb7d5a04e4ee08d63ce6aa" + "measured_at": "f87f658ef28d7090ff32285894fcde8339dd7505" } } }