The MFUPP preprocessor is invoked using the PREPROCESS Compiler directive.
The following directives can be used with the MFUPP preprocessor:
- CICS
- Changes behavior of how EXEC CICS statements are processed during a test run. You can remove the EXEC CICS statements from
a test run, to allow easier access to the business logic under test.
- Permissible values:
- CICS - all EXEC CICS statements are ignored, but the
dfheiblk copybook is included, and DFH macros are expanded.
- CICS"IGNORE" - as above.
- CICS"NO-DFHEIBLK" - all EXEC CICS statements are ignored and the
dfheiblk copybook is not included, but DFH macros are expanded.
- CICS"NO-DFH-MACRO" - all EXEC CICS statements are ignored and DFH macros are not expanded, but the
dfheiblk copybook is included.
- Default: not set, and so all EXEC CICS statements and macros are processed, and the
dfheiblk copybook is included.
- CONFIRM, C
- Specifies whether directives are to be shown on the screen, if accepted.
- Permissible values: CONFIRM | NOCONFIRM, C | NOC
- Default: NOCONFIRM
- EXEC-REPORT-FILE, ERF
- Creates a catalog file of the the EXEC statements that can be mocked. This file is generated with an
mfupp-et extension, and can be used with the test runner command to create a sample mock source file; see
generate-exec-mock-snippet in
Test Runner Syntax Options for more information.
- By default, an entry is created for each EXEC statement. If you have identical EXEC statements within the source file, they
will be cataloged multiple times, and when you use the catalog file to generate the snippets (using the generate-exec-mock-snippet
directive), you may receive a
COBCH0304 Procedure
proc-name name not unique error message. If you receive such an error, generate the catalog file with the EXEC-REPORT-FILE directive instead, which
includes a sequence number for all catalog entries, and uses this number when creating the snippets, ensuring each snippet
is unique.[1]
- Permissible values: EXEC-REPORT-FILE, ERF |
EXEC-REPORT-FILE"NOINCLUDE-SEQ-ID", ERF"NOINCLUDE-SEQ-ID", EXEC-REPORT-FILE"NOISI", ERF"NOISI"
- Default: EXEC-REPORT-FILE"NOINCLUDE-SEQ-ID"
- IGNORE-PRG-PREFIX, IPP
- Changes program-ids that the preprocessor will ignore (that is, will not pass execution to the controller entry point when
the program is called).
- Permissible values: IGNORE-PRG-PREFIX"file-prefix" | NOIGNORE-PRG-PREFIX, IPP"file-prefix" | NOIPP
- Default: IGNORE-PRG-PREFIX"MFUT,MFUM,Test"
- INSERT-LS, IL
- Inserts a local-storage section if the source under test is not enabled for recursion. (This avoids a
COBRT166 Recursive COBOL CALL is illegal error, as the preprocessor requires source to be compiled for recursion).
- Permissible values: INSERT-LS, IL | NOINSERT-LS NOIL
- Default: INSERT-LS
- LK-PREFIX, LKP
- Changes the "linkage section" copybook filename insertion prefix; see
Inserting Test Code into Source Code. NOLK-PREFIX and NOLKP reset the prefix back to its default.
- Permissible values: LK-PREFIX"file-prefix" | NOLK-PREFIX, LKP "file-prefix" | NOLKP
- Default: LK-PREFIX"MFULK_"
- MOCK, M
- Turns on or off the instrumentation of the program under test.
When the CICS parameter is specified, code is generated to support the mocking of EXEC CICS statements, and an additional
field (MFU-MD-EXEC-CONTROLLER) is required in the metadata entry point within your test case; see
Mocking and Stubbing Source Code for more information. Use the MOCK"CICS" directive in conjunction with the CICS directive when mocking programs containing
EXEC CICS statements.
- Permissible values: MOCK["CICS|SQL|PROGRAM"] | NOMOCK
- Default: NOMOCK
- PD-PREFIX, PDP
- Changes the "procedure division" copybook filename insertion prefix; see
Inserting Test Code into Source Code. NOPD-PREFIX and NOPDP reset the prefix back to its default.
- Permissible values: PD-PREFIX"file-prefix" | NOPD-PREFIX, PDP"file-prefix"| NOPDP
- Default: PDS-PREFIX"MFUPD_"
- PDS-PREFIX, PDSP
- Changes the "procedure division (start)" copybook filename insertion prefix; see
Inserting Test Code into Source Code. NOPDS-PREFIX and NOPDSP reset the prefix back to its default.
- Permissible values: PDS-PREFIX"file-prefix" | NOPDS-PREFIX, PDPS"file-prefix"| NOPDPS
- Default: PDS-PREFIX"MFUPDS_"
- SQL
- Changes behavior of how EXEC SQL statements are processed during a test run. You can remove the EXEC SQL statements from a
test run, to allow easier access to the business logic under test.
Restriction: The unit testing framework does not currently process EXEC SQL statements, even when SQL"IGNORE" is not set.
- Permissible values: SQL"IGNORE"
- Default: not set.
- VERBOSE, V
- Specifies whether verbose messages are to be shown on the screen.
- Permissbile values: VERBOSE | NOVERBOSE
- Default: NOVERBOSE
- WS-PREFIX, WSP
- Changes the "working-storage section" copybook filename insertion prefix; see
Inserting Test Code into Source Code.NOWS-PREFIX and NOWSP reset the prefix back to its default.
- Permissible values: WS-PREFIX"file-prefix" | NOWS-PREFIX, WSP"file-prefix" | NOWSP
- Default: WS-PREFIX"MFUWS_"
Example
cobol myprog.cbl preprocess"mfupp" MOCK PD-PREFIX"MFUPRO_" endp;
Tip: You can store the directives to be used with the preprocessor in a directives file, named
mfupp.dir. In this file, specify only the directives shown above, and only one per line. When using the file, ensure it is in your
working directory, and then specify the preprocessor without any directives; for example:
cobol myprog.cbl preprocess"mfupp" endp;