z390 Portable Mainframe Assembler and Emulator

z390 Regression Tests

Automated Software Tools Corporation

z390 Regression tests all use the following process to verify successful execution with expected results:

  1. Erase generated test files from all z390 directories that have test or demo programs
  2. Assemble, link, and execute z390 test or demo programs generating test files
  3. Run linklib\RTGENDIR.MLC utility to generate list of all files in test directory to be compared with all files in save sub-directory containing copy of expected files from last successful regression test
  4. Run file compare utility fc to compare test file with saved file and store differences in dif directory in file with same name.
  5. Run linklib\RTGENDIF.MLC utility to check each FC compare DIF file and generate ERASE command file to delete all the exact matches and then generate 2 file entries named RT_DIF_TOT_FILES_NNNN and RT_DIF_MATCH_NNNN showing the total files and total matches found.
  6. Sort the dif directory files in descending order by size and list them to see which files have the largest differences.  (The differences may be due to different user directories, different z390 versions, different operating systems or Java runtimes, or execution errors.

The following regression test commands and corresponding sub-directories are included in the z390 install directory and can be executed from GUI or Windows command line in z390 directory:
RTDEMO - demo programs in demo directory
RTGUAM - interactive demo and test programs in Graphical User Access Method (GUAM) guam directory
RTLINK   - callable subroutines and test programs in linklib directory
RTSOA     - interactive demo and test programs in Service Oriented Architecture (SOA) soa directory
RTUTIL    - Utility programs in util directory
RTVSAM - VSAM macro and utility testing
RTVSE      - VSE demo and test programs in vse directory (see VSE macros in vse\mac directory)

The following optional regression tests require download and installation of MVS.zip containing all of the system macros for MVS 3.8 from the public domain SHARE CBT archives and RT.zip containing z390 regression tests for each component:

RTMVS - run all regression tests in optional mvs directory (download and install MVS zip)
RTTEST - run all regression tests in optional rt directory (download and install RT zip)
RT           - run all of the non-interactive regression tests including RTMVS and RTTEST (For v1.4.03 this regression test found 2309 files and 2303 matching files.  The 6 file differences were expected due to time and date tests.

Demo programs Description of demo programs
DEMO WTO 'HELLO WORLD' 4 line macro program
DEMOBMK1 Benchmark which executes BCT instruction 2 million times for timing purposes
DEMOBMK2 Benchmark which executes AXR, BCT 100,000 times for timing purposes
DEMODFP1 Show differences in binary floating point and decimal floating point calculation
DEMOM8Q1 Calculate and display 8 queens chess problem using recursive macro code
DEMONUM1 Calculate and display prime numbers to 4000 using conditional macro code
DEMONUM2 Calculate and display prime numbers to 4000 using basic assembler code
DEMOSTR1 Demo use of structured programming macros  - IF, ELSEIF, ELSE,  ENDIF, DO, and ENDDO.  See z390 Structured Programming Guide. See SHARE presentation by Ed Jaffee.
DEMOWTO1 WTO 'HELLO WORLD' 4 line macro program
DEMOWTO2 Repeat WTO 'HELLO WORLD' 5 times using macro code loop
STDDEVLB Calculate standard deviation using 128 bit 34 digit BFP floating point instructions
RTCICS programs Description of CICS compatible transaction manager programs
DFHPCT Program Control Table
MMMMCIC2 EXEC SEND "Hello World" message and then EXEC RETURN
RTZCICS Test EXEC CICS parsing and generated macro expansion
Z390BED* Test bed tranaction handlers BED1 - BED9
Z390CIC1 Receive AID and if enter, EXEC LINK to Z390BED2, then repeat echo loop until PF3 received
Z390CIC2 Send AID character via EXEC SEND and EXEC RETURN
Z390CEMT CEMT system command processor
Z390CICS Server message transaction manager using TCPIO RECEIVE and SEND
Z390KCP Local terminal manager using GUAM dialog and TN3270 TPUT/TGET
GUAM programs Description of Graphical User Access Method interactive programs in z390\guam
DEMOAPL1 Show all APL graphic character symbols
DEMOGUI1 WTO and WTOR loop with reply display (use optional GUAM for GUI)
DEMOGUI2 WTO, WTOR, WAIT loop which calculates MIP rate (use optional GUAM)
DEMOGUI3 TPUT, TGET using edit mode (use optional GUAM for TSO scrolling screen mode)
DEMOGUI4 TPUT, TGET in full screen TN3270 to write and read fields with blinking cursor (this demo requires GUAM option for TN3270 data stream support)
DEMOGUI5 GUAM graphics macro outupt (this demo requires GUAM and is not fully supported yet.  See pending RPI 137)
DEMOGUI6 GUAM interactive TN3270 screen demo with F1 help and 3 input fields - name, address, and zip.  The zip field is numeric and alarm sounds if alpha entered.
HELLO1 demo TN3270 TPUT FULLSCR "Hello World"
HELLO2 demo TN3270 TPUT FULLSCR "Hello World" with multiple SF commands
HELLO3 demo TN3270 TPUT FULLSCR "Hello World" with SFE command
AID test TN3270 display any AID keys entered
TESTGP1 test TN3270 fill screen with characters using single TPUT for each character
TESTGP2 test TN3270 fill screen with single TPUT
TESTGP3 test TN3270 TPUT display Hello World and wait for TGET keyboard input
TESTGP4 test TN3270 TPUT display Hello World and wait for TGET keyboard input reg form
RTLINK programs Description of linklib directory callable utilities and subroutines
CVTTOHEX callable subroutine to convert any length field to HEX using single TROT instruction
FPCONMFC callable interface to FPCONVRT used by z390 CTD and CFD macros
FPCONVRT callable floating point conversion routine contributed by David Bond with Tachyon called by FPCONMFC when using LINKAGE=MF for mainframe compatiblity on CTD and CFD conversion macros in z390 assembler.
REPRO VSAM utility to load or unload VSAM file from/to QSAM or another VSAM file
RTGENCMP macro processor utility to generate BAT with FC compares for regression testing
RTGENDIR macro progressor utility to extrace file names from DIR command for use by RTGENCMP utility
TESTFPC1 verify CTD and CFD conversion for range of floating point values using both MF and SVC linkage options for EB, EH, DB, DH, LB, and LH floating point types.
TESTFPC2 verify CTD and CFD conversions for MIN and MAX values for all floating point types including EB, EH, DB, DH, LB, and LH.
SOA programs Description of Service Oriented Architecture (SOA) demos and tests in soa dir
DEMOMAIN Main program which calls DEMOSUB1 and DEMOSUB2 to add 2 numbers.  This demo is first run using static linking of subroutines and then it is rebuilt using generated stub object code to interface with client manager DEMOCMGR which uses TCPIO svc to communicate via sockets over TCP/IP network with DEMOSMGR which calls the requested dynamically loaded subroutine modules on the server to perform the requested service and return results.
DEMOSUB1 Callable subroutine to add 2 scientific notation numbers using 128 bit BFP
DEMOSUB2 Callable subroutine to add 2 integers
DEMOCMGR Generate SOA client message manager for DEMOMAIN application client
DEMOSMGR Generate SOA server message manager for DEMOMAIN application services
DEMOSTOP Utility to send message to specified SOA server to shut it down
TESTMSGC Send message to TESTMSGS server on specified port.  Message is echoed back to TESTMSGC and displayed on console.  Enter Q to end.
TESTMSGS Receive message from SOA client and send it back.
RTTEST programs Description of regression tests in rt\test dir
TESTACT1 macro ACTR limit
TESTASC1 ASCII mode DC constants
TESTASC2 ASCII mode self defining terms
TESTASC3 ASCII mode execution of TESTINS2 z390 instruction execution tests
TESTASC4 ASCII mode run TEST memory changes in batch mode and verify
TESTASM1 az390 tests - CNOP, L' operator,  symbol tests, START, COM, and RSECT test, CVTDCB flags test
TESTASM2 az390 test tab delimiter versus space before comments using notepad editor
TESTBLD1 ez390 test BLDL search for 390 load modules in CDE memory and SYS390 dirs
TESTCAL1 ez390 test local static linked CALL
TESTCAL2 ez390 test static linked CALL with EXTRN and ENTRY
TESTCIC1 mz390 test of DFTRESP CICS error code literal substitution.
TESTCIC2 mz390 test assembly only of EXEC CICS SEND/RECEIVE with quoted literals
TESTCMD1 Single Windows command process
TESTCMD2 Two Windows command processes reading separate linked list output queues in sequence
TESTCPY1 Nested copy statement support
TESTCPY2 Comments after name on COPY statement
TESTCTD1 CTD convert to decimal conversion macro
TESTCVB1 CVB 32 bit convert to binary
TESTCVBG CVBG 64 bit convert to binary
TESTDC1 DC constants
TESTDC2 DC bit length constants
TESTDCB8 copy RECFM=F using sequentail READ and WRITE
TESTDCB9 copy RECFM=F file in reverse order using random READ and WRITE
TESTDCBA copy RECFM=FT file in ASCII mode with DCB RECORD= and DSNAME= and new file
TESTDCBC copy RECFM=FT ASCII file to RECFM=FT ASCII file in ASCII mode with DCB RECORD= and DSNAME= and new file
TESTDCBE create RECFM=FT and read RECFM=FT contributed by MM
TESTDFP1 Decimal Floating Point (DFP)
TESTDMP1 S0C1 abend with default indicative dump
TESTDMP2 S0C1 abend with DUMP option for full dump
TESTDMP3 User requested ABEND 111 with DUMP requested
TESTDMP4 SNAP dump with open file information, program information, and memory area dump
TESTDMP5 test abend dump with forced 0C1 abend
TESTECB1 WAIT ECBLIST= test multiple ECB wait
TESTENT1 Symbol defined as both ENTRY and CSECT
TESTENV1 GETENV macro to get environment string value
TESTEOF1 End of ASCII file with X'1A' end of file code
TESTERR1 mz390 macro errors
TESTERR2 az390 assembly errors
TESTERR3 mz390 DCB macro errors
TESTERR4 ez390 invalid DCB DSNAME causing S013 abend
TESTERR5 ez390 invalid DCB DSNAME with SYNAD exit
TESTERR6 ez390 invalid DCB error
TESTERR7 ez390 missing DDNAME and no SYNAD
TESTEXT1 EXTRN static link
TESTEXT2 VCON and ENTRY static link
TESTFP1 floating point BFP and HFP instructions
TESTINS1 verify assembly of all instruction formats (1085) including z9, z10, and ASSIST
TESTINS2 verify problem state instruction execution (400+) including z9 opcodes
TESTINS3 verify problem stat instruction execution (226) for new z10 opcodes
TESTIPL1 ez390 IPL program to initialize CVTDATE for use by TESTIPL2
TESTIPL2 ez390 test option IPL(TESTIPL1) which executes TESTIPL1 before TESTIPL2 which then fetches CVTDATE and displays its current value which is 0 if TESTIPL1 is not run first to initialize it.
TESTLAB1 generated statement label and operator field errors for HLASM compatibility
TESTLNK1 LINK, LOAD, and DELETE macro and svcs
TESTLOC1 az390 multiple LOCTR's for CSECT and DSECT
TESTLOD1 LOAD 390 load modules  with DDNAME and DSNAME options
TESTLOD2 LOAD and DELETE user data files with DSNAME options
TESTMAC1 mz390 substring operations and DOUBLE
TESTMAC2 mz390 conditional compares
TESTMAC3 mz390 redefine instruction using inline macro, redefine global as local, expand array, test tab vs space delimiter before comments
TESTMAC4 mz390 test macro labels on MEND statements both upper and lower case
TESTMAC5 mz390 test multiply in sub-string expression subscript and no concat . after substring
TESTMAC6 mz390 test complex keyword parameter parsing such as &OPTION=(A,B,C)
TESTMAC7 mz370 test tab versus space before comments using notepad editor
TESTMAC8.MAC test inline macros in open code and macro files with nested duplicate labels and labels on MEND
TESTMAC9 mz390 COPY support for macro files see TESTMAC9.MAC and TESTMAC9.CPY
TESTMCR1.ASM mz390 test user specified file type for main program (ASM) and macros (MCR)
TESTMEM2 GETMAIN extensions for LV=nnnK and LV=nnnM
TESTMEM4 GETMAIN and FREEMAIN test previously cauing corruption on merge
TESTOBJ1 all OBJ record types ESD (SD, ER, WX, LD), TXT, RLD, and END
TESTOBJ2 32 MB single CSECT using OBJHEX option (OBJ binary limited to 24 bit length)
TESTOPR1 mz390 operators UPPER, LOWER
TESTORG1 ORG test using multiple CSECT, RSET, LOCTR, and DSECT's
TESTPC1 macro pseudo code ok if undefined AIF branch not taken
TESTPCH1 inline AREAD and PUNCH using default PCH file
TESTPCH2 AREAD and PUNCH with explicit input and output file extensions
TESTPCH3 Copy 2 AREAD text files and also merge the two into third text file
TESTPRM1 positional and keyword parms
TESTPRM2 positional and keyword parms
TESTPRM3 mz390 sublists, N' and K' operators
TESTPRM4 mz390 test double quotes around SYSPARM with commas "SYSPARM('A,B')"
TESTPRO1 mz390 test PROFILE(TESTPRO1) copy file included preceeding MLC source which executes macro TESTPROS.MAC and redefines END opcode to execute TESTPROT.MAC at termination.
TESTRLD1 relocation constants
TESTSDT1 self defining terms B, C, and X
TESTSET1 mz390 subscripted local and global set variables
TESTSET2 mz390 create local set variables
TESTSET3 mz390 created global set variables
TESTSPI1 ez390 ESPIE test
TESTSQL1 mz390 EXEC SQL INCLUDE test to copy specified file
TESTSTA1 ez390 ESTAE restart
TESTSTA2 ez390 ESTAE restart and percolate higher level
TESTSTA3 ez390 ESTAE restart and percolate lower level
TESTSUB1 subroutine with 3 csect wto routes and ENTRY for use in static and dynamic tests
TESTSUB4 subroutine with 1 csect wto for use in dynamic LINK and LOAD tests
TESTSVC1 test user defined SVC handler facilty to redefine svc 201 as WTO svc 35
TESTSYM1 mz390 symbol T' and L' operator tests
TESTSYN1 mz390 OPSYN redefine tests
TESTSYN2 mz390 OPSYN used before and after last restore
TESTSYS1 mz390 test of global and local system variables such as &SYSDATE, &SYSCLOCK
TESTSYS2 BS2000 compatibility macro system variables
TESTTIM1 TIME macro svc 11 with numerious date and time formats
TESTTIM2 STIMER WAIT test to verify approximately 3 seconds elapsed wait
TESTTST1 batch execution test of the interactive test sub-commands
TESTTXT1 macro processor multiple text file processing option to generate HTML text files
TESTWXT1 test weak external references WXTRN with no RLD and no error if not included
TESTXCL1 XCTL main program links to TESTXCL2 then XCTL to TEXTXCL3
TESTXCL2 XCTL subroutine which snaps CDE entries and issues XCTL to TESTXCL3
TESTXCL3 XCTL subroutine which snaps CDE entries and issues XCTL to TESTXCL4
TESTXCL4 XCTL subroutine which snaps CDE and exits
TESTXLT1 XLATE EBCDIC and ASCII translation macro
TESTZCV1 Use ZCVT to access and display current PGM and IPL fields
TESTZSM1 Test basic ZSTRMAC structures using bootstrap ZSTRMAC1.MLC
TESTZSM2 Test basic ZSTRMAC structures using structured version
TESTZSM3 Test all 256 values and all the operand options for ASELECT, AWHEN ZSTRMAC
TESTZSM4 Test error messages for ZSTRMAC
RTUTIL programs Description of z390 utility programs
SUPERZAP Utility to search, verify, dump, and path any file up to 2 GB.
UNREF Utility to read any PRN z390 assembly listing and list unreferened symbols.
ZSTRMAC1.MLC Bootstrap version of translator for ZSTRMAC structured programming extensions
ZSTRMAC2.ZSM Structured version of translator for ZSTRMAC extensions
RTVSAM programs Description of VSAM regression test demos
ESF1 Create ESDS fixed length VCDT cluster definition table using DEFINE macro
ESF1SG Use VSAM application macros to read ESF1 ESDS VSAM file created by ESF1SP.
ESF1SP Use VSAM application macros to create ESF1 ESDS VSAM file
ESV1 Create ESDS variable length VCDT cluster definition table using DEFINE macro
ESV1SG Use VSAM application macros to read ESV1 ESDS VSAM file and verify the content of the records which vary from 1 to 100,000 in lenght by powers of 10.
ESV1SP Use VSAM application macros to create ESV1 ESDS VSAM file with variable length records up to 100,000 in length.
RTVSE programs Description of VSE regression test demos and tests
DEMOVSE1 Display date and time using VSE COMRG and GETIME macros
DEMOVSE2 Load and call DEMOVSE1 using CDLOAD and CDDELETE and then exit using EOJ VSE macro.
DEMOVSE3 Read and write records using OPEN, CLOSE, GET, PUT, DTFCD, and DTFPR macros.
TESTVSE1 Test memory allocation and deallocation using GETVIS and FREEVIS macros

Regression Tests using MVS 3.8 macro library

The MVS 3.8 public domain source macro library available for download from the CBT archive tapes has been repacked in ascii z390_MVS.zip format along with regression tests for download from www.z390.org.  The MVS 3.8 macros are in MVS\MACLIB directory.  Demo programs using the MVS 3.8 macro library are in MVS\DEMO and regression tests are in MVS\TEST.  After installing z390 v1.1.02+, you can then unzip the MVS zip file into the z390 install directory.   Then enter command RTMVS.BAT to run all the regression tests.  To assemble, link, and execute the hello world demo program mvs\demo\demo, enter the following command:


Note the +MAC concatenates the z390 default macro library in order to pick any macros not in the MVS 3.8 macro directory such as SUBENTRY and SUBEXIT standard linkage macros.   The regression test of assembly and link of common MVS application macros can be done with the command:


Note the MVS 3.8 regression tests currently just validate assemble and link only.  Most MVS 3.8 macros generate svc interface code that is not compatible with z390 or any other operating system version.  The hello world demo can be executed because the common WTO svc 35 interface is compatible with z390. To execute application programs using z390, will require either using the z390 default macros available or writing user svc handler to map the MVS svc interface to be compatible with the currently supported z390 svc interfaces.  See z390 regression test RT\TEST\TESTSVC1 for example of simple svc hander.  For additional demos in HLASM, ASM, C++, COBOL, and Java for comparison visit www.mfatc.org.

RTMVS programs Description
DEMO Assemble, link, and execute a 'HELLO WORLD' demo using MVS 3.8 WTO macro and SVC 35 which is compatible at the svc interface.
TESTCVT1 Assemble and link the CVT in a CSECT with separate TESTCVTX to resolve EXTRN's
TESTCVTX Stub assembly to resolve all the EXTRN's in CVT.
TESTFIX1 mz390 conditional macro code utility used to edit all the MVS\MACLIB macros.
TESTMVS1 Assemble commonly used macros using MVS 3.8 macro library


IBM, CICS, HLASM, MVS, OS/390, VSAM, z9, z10, and z/OS
 are registered trademarks  of International Business Machines Corporation

This page last updated Sunday September 07, 2008.   Webmaster  Sitemap
Copyright 2008 Automated Software Tools Corporation