Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 20 additions & 8 deletions tests/equivalence/det_sweep_coverage/genapp-lgapvs01.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,42 @@
{
"format": "det-sweep-coverage/2",
"scenarios": 8,
"scenarios": 11,
"paragraphs": {
"covered": 2,
"covered": 3,
"live": 3
},
"branches": {
"covered": 5,
"total": 9
},
"linked": {
"LGSTSQ": {
"paragraphs": {
"covered": 1,
"live": 1
},
"branches": {
"covered": 2,
"total": 6
}
}
},
"inputs": {
"case": "43ffec29fa8c2a0550158fe549d117033843e9741c072eae52f4d08209b5d2a0",
"case": "bd6f078a18022659081c1d65408f8093c52c2ea4b5090b5c0c35ad5a6e7ec9b7",
"corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6",
"harness": "988bce4bb838393cdaef012a2baba7c78bcb0c45e014c32b07185325fa4200d1",
"oracle": "babe8646430a9e1b33351b6c160d6e452abe4b8363444208954834e6e556119a",
"harness": "6f6e8b308a1e087561982b3157c427f7a9595772b16f50bf58cd5411558c2449",
"oracle": "db4ce1a1215ccfb5ed86d706f91ab5afa29d583d2fe8c84bb34f6852598f7032",
"components": {
"harness": {
"harness:cics": "15d0de8f2010751dfc90928cfd4b28c296306d86fba8b79edf32c47b7d14e6bf",
"harness:core": "6e7670f33404fd3fb12eacc2a12b4d9b8a0329a68cfeed15d95bc33ac1820222"
"harness:core": "1110c2bab773a074f405a5acf8189b68a73485cdccf4ba344b57a54321acff56"
},
"oracle": {
"oracle:cics-stub": "807c182704dce3b9066d2f03b84f40dc9790264f91deed4df4f561391683faef",
"oracle:core": "eea2a006cc58ebd1141804b10def30c657d4d2d2a3d2a19cf5d137d9dea04359",
"oracle:le": "66f2875621048177f9d8c839aa5b86b7a6c4888fcf8a837c04900fe6e6fe673b"
"oracle:le": "fcb5955019dd536a60d5cb03771f58f75ebf5b57d2ef4001b7e31d8b79a9a6ec"
}
}
},
"measured_at": "f484174367c47b2fddf9cb5ef05cc5febdce81ac"
"measured_at": "be82f2e870f21d7a344d17fa03493991588f57f5"
}
28 changes: 20 additions & 8 deletions tests/equivalence/det_sweep_coverage/genapp-lgupvs01.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,42 @@
{
"format": "det-sweep-coverage/2",
"scenarios": 6,
"scenarios": 10,
"paragraphs": {
"covered": 2,
"covered": 3,
"live": 3
},
"branches": {
"covered": 5,
"total": 9
},
"linked": {
"LGSTSQ": {
"paragraphs": {
"covered": 1,
"live": 1
},
"branches": {
"covered": 2,
"total": 6
}
}
},
"inputs": {
"case": "c9ce6f6f6962d4c7aee349ab8ad98699a1fcc799bbe1bb91c8e7f485a68221cb",
"case": "52e4cbe907cdaa8705b7c6e82cbf07a07afca94f325ce1bd1f24eba2b8cb6532",
"corpus": "c5e4d52071fad96bed24e9ba06f30417340bfc5e998e7c1cd5f2383be73d6ff6",
"harness": "988bce4bb838393cdaef012a2baba7c78bcb0c45e014c32b07185325fa4200d1",
"oracle": "babe8646430a9e1b33351b6c160d6e452abe4b8363444208954834e6e556119a",
"harness": "6f6e8b308a1e087561982b3157c427f7a9595772b16f50bf58cd5411558c2449",
"oracle": "db4ce1a1215ccfb5ed86d706f91ab5afa29d583d2fe8c84bb34f6852598f7032",
"components": {
"harness": {
"harness:cics": "15d0de8f2010751dfc90928cfd4b28c296306d86fba8b79edf32c47b7d14e6bf",
"harness:core": "6e7670f33404fd3fb12eacc2a12b4d9b8a0329a68cfeed15d95bc33ac1820222"
"harness:core": "1110c2bab773a074f405a5acf8189b68a73485cdccf4ba344b57a54321acff56"
},
"oracle": {
"oracle:cics-stub": "807c182704dce3b9066d2f03b84f40dc9790264f91deed4df4f561391683faef",
"oracle:core": "eea2a006cc58ebd1141804b10def30c657d4d2d2a3d2a19cf5d137d9dea04359",
"oracle:le": "66f2875621048177f9d8c839aa5b86b7a6c4888fcf8a837c04900fe6e6fe673b"
"oracle:le": "fcb5955019dd536a60d5cb03771f58f75ebf5b57d2ef4001b7e31d8b79a9a6ec"
}
}
},
"measured_at": "f484174367c47b2fddf9cb5ef05cc5febdce81ac"
"measured_at": "be82f2e870f21d7a344d17fa03493991588f57f5"
}
56 changes: 55 additions & 1 deletion tests/equivalence/genapp-lgapvs01/case.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,61 @@
"CA-REQUEST-SPECIFIC": "0000000005 0000000000 000000BUNGALOW 00200180000"
},
"why": "customer 3 / policy 5 exist as an E record; under H the key differs, so the WRITE is NORMAL and both records stay"
},
{
"name": "add-duplicate-key",
"commarea": {
"CA-REQUEST-ID": "01AEND",
"CA-CUSTOMER-NUM": 3,
"CA-REQUEST-SPECIFIC": "0000000005 0000000000 000000YNYGROWTHFUND25250000Life Assured Person With 31chrs"
},
"why": "WRITE of E/3/5, a key already in ksdspoly.txt: DUPREC: '80' to CA-RETURN-CODE, WRITE-ERROR-MESSAGE (LINK LGSTSQ twice), RETURN; the file is unchanged"
},
{
"name": "add-io-error",
"commarea": {
"CA-REQUEST-ID": "01AEND",
"CA-CUSTOMER-NUM": 1,
"CA-REQUEST-SPECIFIC": "0000000011 0000000000 000000YNYGROWTHFUND25250000Life Assured Person With 31chrs"
},
"faults": [
{
"cmd": "WRITE",
"file": "KSDSPOLY",
"resp": "IOERR",
"why": "an I/O error on the data set (IBM: WRITE IOERR)"
}
],
"why": "WRITE of E/1/11 fails IOERR: '80', WRITE-ERROR-MESSAGE"
},
{
"name": "add-nospace",
"commarea": {
"CA-REQUEST-ID": "01AEND",
"CA-CUSTOMER-NUM": 1,
"CA-REQUEST-SPECIFIC": "0000000011 0000000000 000000YNYGROWTHFUND25250000Life Assured Person With 31chrs"
},
"faults": [
{
"cmd": "WRITE",
"file": "KSDSPOLY",
"resp": "NOSPACE",
"why": "the data set is full (IBM: WRITE NOSPACE)"
}
],
"why": "WRITE of E/1/11 fails NOSPACE: '80', WRITE-ERROR-MESSAGE"
}
],
"notes": "GenApp's VSAM 'add policy' (LGAPVS01, LINKed by LGAPDB01): the policy key is CA-REQUEST-ID(4:1) (the type: E/H/M/C) + CA-CUSTOMER-NUM + CA-POLICY-NUM; an EVALUATE on the type moves that type's fields into WF-POLICY-DATA (WHEN OTHER: spaces), then EXEC CICS WRITE FILE('KSDSPOLY') FROM(WF-Policy-Info) LENGTH(64) RIDFLD(WF-Policy-Key) KEYLENGTH(21); on NORMAL it GOBACKs. Each scenario's KSDSPOLY is compared after the task. Every non-NORMAL RESP in this program goes to WRITE-ERROR-MESSAGE (ASKTIME, FORMATTIME, then EXEC CICS LINK PROGRAM('LGSTSQ') with ERROR-MSG and a second LINK with the 99-byte CA-ERROR-MSG). The case's programs list adds LGSTSQ to the same task (X6, #4607), so the error paths run: DUPREC on an existing key, and the injected NOSPACE and IOERR ('80' to CA-RETURN-CODE, then RETURN). A task that reaches WRITE-ERROR-MESSAGE is judged only up to the first LGSTSQ LINK: this program's 101-byte ERROR-MSG is longer than LGSTSQ's 95-byte WRITE-MSG, so the oracle refuses the WRITEQ TD by name (X6, LENGTH > FROM: not modelled); the RESP, the file and the LINK itself are compared before it. The region ASSIGN SYSID is a deployment fact the corpus does not name. The IF EIBCALEN > 0 / IF EIBCALEN < 91 arms of WRITE-ERROR-MESSAGE (4 branches) come after that first LINK and stay uncovered until X6 models LENGTH > FROM; a short-commarea scenario would stop at the same refusal, so none is stated. There is no STARTCODE D arm in this program (it never ASSIGNs STARTCODE). Keys: WF-POLICY-KEY is the request-type byte followed by 20 digits, so every key mixes a letter and digits; the WHEN OTHER scenario puts a digit in that first byte (digits sort before letters in ASCII, after them in EBCDIC). No browse is issued, so no key order is exercised (the comparison sorts each side's records by key bytes). Data: ksdspoly.txt is built from GenApp's own sample policies (base/cntl/db2cre.jcl's policy rows joined with their endowment / house / motor / commercial rows), laid out as WF-POLICY-INFO (request-type letter + customer + policy number, then the type's 43 bytes) -- the record LGAPVS01 writes; policy 7 (type C, no commercial row) is left out. Derived from the CICS General Insurance Application (GenApp, github.com/cicsdev/cics-genapp; (C) Copyright IBM Corp. 2011, 2020), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own, NOTICE names the source and what was derived.",
"programs": [
{
"program": "LGSTSQ",
"program_source": "base/src/lgstsq.cbl"
}
],
"notes": "GenApp's VSAM 'add policy' (LGAPVS01, LINKed by LGAPDB01): the policy key is CA-REQUEST-ID(4:1) (the type: E/H/M/C) + CA-CUSTOMER-NUM + CA-POLICY-NUM; an EVALUATE on the type moves that type's fields into WF-POLICY-DATA (WHEN OTHER: spaces), then EXEC CICS WRITE FILE('KSDSPOLY') FROM(WF-Policy-Info) LENGTH(64) RIDFLD(WF-Policy-Key) KEYLENGTH(21); on NORMAL it GOBACKs. Each scenario's KSDSPOLY is compared after the task. Every non-NORMAL RESP in this program goes to WRITE-ERROR-MESSAGE, whose first act is EXEC CICS LINK PROGRAM('LGSTSQ') (GenApp's TS/TD error logger, defined in the CSD); the equivalence harness runs one program and has no port of LGSTSQ, so a scenario that reaches it is refused (Unsupported: LINK PROGRAM(LGSTSQ)). The error paths -- DUPREC on an existing key, NOSPACE / NOTOPEN / IOERR, CA-RETURN-CODE '80' -- are therefore NOT exercised here; they need LGSTSQ modelled (or ported) first. Keys: WF-POLICY-KEY is the request-type byte followed by 20 digits, so every key mixes a letter and digits; the WHEN OTHER scenario puts a digit in that first byte (digits sort before letters in ASCII, after them in EBCDIC). No browse is issued, so no key order is exercised (the comparison sorts each side's records by key bytes). Data: ksdspoly.txt is built from GenApp's own sample policies (base/cntl/db2cre.jcl's policy rows joined with their endowment / house / motor / commercial rows), laid out as WF-POLICY-INFO (request-type letter + customer + policy number, then the type's 43 bytes) -- the record LGAPVS01 writes; policy 7 (type C, no commercial row) is left out. Derived from the CICS General Insurance Application (GenApp, github.com/cicsdev/cics-genapp; (C) Copyright IBM Corp. 2011, 2020), licensed under the Eclipse Public License 2.0: LICENSE here is the corpus's own, NOTICE names the source and what was derived."
"region": {
"applid": "GENAPP",
"sysid": "CICA",
"why": "a deployment fact: LGSTSQ (the error logger every non-NORMAL RESP LINKs) ASSIGNs SYSID into the message it writes; GenApp names no region in the corpus"
}
}
Loading
Loading