The following is a screen capture for installation, running unit tests, and running coverage analysis on the m-unit routines (%ut, %ut1, and %utcover) in the Cache environment. VISTA>S DUZ=1 D Q^DI,^%ZIS VA FileMan 22.0 Select OPTION: DEVICE: HOME// Console (Cache' on Windows) Right Margin: 80// VISTA>D ^XUP Setting up programmer environment This is a TEST account. Terminal Type set to: C-VT220 Select OPTION NAME: EVE Systems Manager Menu Select Systems Manager Menu Option: PROgrammer Options Select Programmer Options Option: KIDS Kernel Installation & Dis tribution System Select Kernel Installation & Distribution System Option: INSTalla tion Select Installation Option: LOAD a Distribution Enter a Host File: C:\TEMP\M\MASH_1.4_0.KIDS KIDS Distribution saved on Apr 09, 2016@14:20:48 Comment: Updated M-Unit package This Distribution contains Transport Globals for the following Package(s): MASH*1.4*0 Distribution OK! Want to Continue with Load? YES// Loading Distribution... MASH*1.4*0 Use INSTALL NAME: MASH*1.4*0 to install this Distribution. Select Installation Option: INSTall Package(s) Select INSTALL NAME: MASH*1.4*0 Loaded from Distribution 4/9/16@14:46:1 5 => Updated M-Unit package ;Created on Apr 09, 2016@14:20:48 This Distribution was loaded on Apr 09, 2016@14:46:15 with header of Updated M-Unit package ;Created on Apr 09, 2016@14:20:48 It consisted of the following Install(s): MASH*1.4*0 Checking Install for Package MASH*1.4*0 Install Questions for MASH*1.4*0 Incoming Files: 17.9001 M-UNIT TEST GROUP (including data) Want KIDS to Rebuild Menu Trees Upon Completion of Install? NO// Want KIDS to INHIBIT LOGONs during the install? NO// Want to DISABLE Scheduled Options, Menu Options, and Protocols? NO// Enter the Device you want to print the Install messages. You can queue the install by enter a 'Q' at the device prompt. Enter a '^' to abort the install. DEVICE: HOME// Console (Cache' on Windows) Install Started for MASH*1.4*0 : Apr 09, 2016@14:46:59 Build Distribution Date: Apr 09, 2016 Installing Routines: Apr 09, 2016@14:46:59 Running Pre-Install Routine: ^ZZUTPRE Installing Data Dictionaries: Apr 09, 2016@14:47 Installing Data: Apr 09, 2016@14:47 Installing PACKAGE COMPONENTS: Installing REMOTE PROCEDURE Installing OPTION Apr 09, 2016@14:47 Running Post-Install Routine: ^ZZUTPOST Routine: ut Loaded, Saved as %ut Routine: ut1 Loaded, Saved as %ut1 Routine: utcover Loaded, Saved as %utcover Routine: utt1 Loaded, Saved as %utt1 Routine: utt2 Loaded, Saved as %utt2 Routine: utt3 Loaded, Saved as %utt3 Routine: utt4 Loaded, Saved as %utt4 Routine: utt5 Loaded, Saved as %utt5 Routine: utt6 Loaded, Saved as %utt6 Routine: uttcovr Loaded, Saved as %uttcovr Updating Routine file... Updating KIDS files... MASH*1.4*0 Installed. Apr 09, 2016@14:47 NO Install Message sent Install Completed Select Installation Option: ^PG Programmer mode VISTA> -------------------------- START OF COMMENT ------------------- The following runs the sequence of unit tests (DOing ^%utt1 from the top runs the code D EN^%ut($T(+0),1) ; Run tests here, be verbose. QUIT which is a good way to set up both development code (e.g., %ut, %ut1, and %utcover) and unit tests so that starting code from the top runs the tests. The routines %uttcovr and %utt6 are special, and run series of tests or coverages when run from the top. Once %utt1 is running, due to the routines following an XTROU tag in it, it also runs the unit tests in %utt2, %utt4, %utt5, %utt6, and %uttcovr. The XTROU tags could be in each and a given unit test routine would still be run only once. To test error handling, and handling of failed tests and other problems, unlike most unit tests, there are 7 expected failures and 1 expected error (dividing by zero) in these tests. All of the other tests which are not indicated as expected failures or tests, should pass without problems. -------------------------- END OF COMMENT ------------------- VISTA>D ^%utt1 T1 - - Make sure Start-up Ran.----------------------------------------- [OK] T2 - - Make sure Set-up runs.------------------------------------------ [OK] T3 - - Make sure Teardown runs.---------------------------------------- [OK] T4 - Entry point using XTMENT.----------------------------------------- [OK] T5 - Error count check T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure .---------------------------------------------------------------------- [FAIL] T6 - Succeed Entry Point...-------------------------------------------- [OK] T7 - Make sure we write to principal even though we are on another device..[OK] T8 - If IO starts with another device, write to that device as if it's the prici pal device.------------------------------------------------------------ [OK] COVRPTGL - coverage report returning global....------------------------ [OK] T11 - An @TEST Entry point in Another Routine invoked through XTROU offsets.[OK] T12 - An XTENT offset entry point in Another Routine invoked through XTROU offse ts.-------------------------------------------------------------------- [OK] MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....--------- [OK] NEWSTYLE - identify new style test indicator functionality.------------ [OK] OLDSTYLE - identify old style test indicator functionality..---------- [OK] OLDSTYL1 - identify old style test indicator 2.----------------------- [OK] BADCHKEQ - CHKEQ should fail on unequal value BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADCHKTF - CHKTF should fail on false value BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADERROR - throws an error on purpose BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q ----------------------------------------------------------------------- [FAIL] CALLFAIL - called FAIL to test it CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it ----------------------------------------------------------------------- [FAIL] LEAKSOK - check leaks should be ok------------------------------------- [OK] LEAKSBAD - check leaks with leak LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X ----------------------------------------------------------------------- [FAIL] NVLDARG1 - check invalid arg in CHKEQ NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ----------------------------------------------------------------------- [FAIL] ISUTEST - check ISUTEST inside unit test.------------------------------ [OK] SETROUS - - generate array with indices of routines to exclude......--- [OK] CHKCMDLN - check command line processing of %utt5---------------------- [OK] CHKGUI - check GUI processing of %utt5--------------------------------- [OK] CKGUISET - check list of tests returned by GUISET---------------------- [OK] NEWSTYLE - test return of valid new style or @TEST indicators...------- [OK] RTNANAL - - routine analysis...---------------------------------------- [OK] COVCOV - - check COVCOV - remove seen lines......---------------------- [OK] COVRPT...........------------------------------------------------------ [OK] COVRPTLS - - coverage report returning text in global...........------- [OK] TRIMDATA - - TRIMDATA in %utcover..------------------------------------ [OK] LIST - - LIST in %utcover............---------------------------------- [OK] CACHECOV - - set up routine for analysis in globals..------------------ [OK] LINEDATA - - convert code line to based on tags and offset, and identify active code lines............------------------------------------------------- [OK] TOTAGS - - convert from lines of code by line number to lines ordered by tag, li ne from tag, and only not covered...........--------------------------- [OK] Ran 6 Routines, 37 Entry Tags Checked 113 tests, with 7 failures and encountered 1 error. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------- START OF COMMENT ------------------- At this point the processing is repeated with timing turned on by setting the second argument value in the EN^%ut API to 2. -------------------------- END OF COMMENT ------------------- T1 - - Make sure Start-up Ran.------------------------------------- [OK] 0ms T2 - - Make sure Set-up runs.-------------------------------------- [OK] 0ms T3 - - Make sure Teardown runs.------------------------------------ [OK] 0ms T4 - Entry point using XTMENT.------------------------------------- [OK] 0ms T5 - Error count check T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure .------------------------------------------------------------------ [FAIL] 0ms T6 - Succeed Entry Point...---------------------------------------- [OK] 0ms T7 - Make sure we write to principal even though we are on another device..[OK] 0ms T8 - If IO starts with another device, write to that device as if it's the prici pal device.------------------------------------------------------- [OK] 15ms COVRPTGL - coverage report returning global....-------------------- [OK] 0ms T11 - An @TEST Entry point in Another Routine invoked through XTROU offsets.[OK] 0ms T12 - An XTENT offset entry point in Another Routine invoked through XTROU offse ts.---------------------------------------------------------------- [OK] 0ms MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....---- [OK] 16ms NEWSTYLE - identify new style test indicator functionality.-------- [OK] 0ms OLDSTYLE - identify old style test indicator functionality..------ [OK] 0ms OLDSTYL1 - identify old style test indicator 2.------------------- [OK] 0ms BADCHKEQ - CHKEQ should fail on unequal value BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL ------------------------------------------------------------------- [FAIL] 0ms BADCHKTF - CHKTF should fail on false value BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL ------------------------------------------------------------------- [FAIL] 0ms BADERROR - throws an error on purpose BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q ------------------------------------------------------------------- [FAIL] 0ms CALLFAIL - called FAIL to test it CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it ------------------------------------------------------------------- [FAIL] 0ms LEAKSOK - check leaks should be ok--------------------------------- [OK] 0ms LEAKSBAD - check leaks with leak LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X ------------------------------------------------------------------- [FAIL] 0ms NVLDARG1 - check invalid arg in CHKEQ NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ------------------------------------------------------------------- [FAIL] 0ms ISUTEST - check ISUTEST inside unit test.-------------------------- [OK] 0ms SETROUS - - generate array with indices of routines to exclude...... [OK] 0ms CHKCMDLN - check command line processing of %utt5------------------ [OK] 0ms CHKGUI - check GUI processing of %utt5----------------------------- [OK] 0ms CKGUISET - check list of tests returned by GUISET------------------ [OK] 0ms NEWSTYLE - test return of valid new style or @TEST indicators...--- [OK] 0ms RTNANAL - - routine analysis...------------------------------------ [OK] 0ms COVCOV - - check COVCOV - remove seen lines......------------------ [OK] 0ms COVRPT...........-------------------------------------------------- [OK] 0ms COVRPTLS - - coverage report returning text in global...........--- [OK] 0ms TRIMDATA - - TRIMDATA in %utcover..-------------------------------- [OK] 0ms LIST - - LIST in %utcover............------------------------------ [OK] 0ms CACHECOV - - set up routine for analysis in globals..-------------- [OK] 0ms LINEDATA - - convert code line to based on tags and offset, and identify active code lines............--------------------------------------------- [OK] 0ms TOTAGS - - convert from lines of code by line number to lines ordered by tag, li ne from tag, and only not covered...........----------------------- [OK] 0ms Ran 6 Routines, 37 Entry Tags Checked 113 tests, with 7 failures and encountered 1 error. VISTA> -------------------------- START OF COMMENT ------------------- %uttcovr runs a series of tests from both the regular code (e.g., DO EN^%ut("routinename")) as well as by calling other entry points (e.g., DO ^%ut), so that coverage can be included for these other entry points. The API used for the coverage analysis is COVERAGE^%ut, with a value of 3 (very verbose) for the VERBOSITY argument. The dashed lines showing RUNNING and a NAME (run by EN^%ut) or TAG^NAME which are run by D TAG^NAME indicate where the different coverage analyses begin. Yes, there are a lot of unit tests repeated from multiple locations. -------------------------- END OF COMMENT ------------------- VISTA>d ^%uttcovr ------------------- RUNNING %utt1 ------------------- .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ................. BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 6 Routines, 37 Entry Tags Checked 109 tests, with 7 failures and encountered 1 error. ------------------- RUNNING %uttcovr ------------------- ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ENTRY^%uttcovr ------------------- LEAKSBAD TEST - X NOT SPECIFIED VARIABLE LEAK: X xxxxxxxxxxxxxxxxxxxx GOING TO COV^%ut FOR %utt5 at 3 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. xxxxxxxxxxxxxxxxxxxx GOING TO COV^%ut FOR %utt5 at -1 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. xxxxxxxxxxxxxxxxxxxx GOING TO MULTAPIS for %utt4 and %ut ------------------- RUNNING ^%ut ------------------- RUNNING COMMAND LINE TESTS VIA DOSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. Running command line tests by RUNSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. RUNNING COMMAND LINE UNIT TESTS FOR %utt5 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. RUNNING UNIT TESTS FOR %utt5 VIA GUI CALLS - Silent NOW RUNNING UNIT TESTS FOR %uttcovr ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. NOW RUNNING UNIT TESTS FOR %utt6 ......... Ran 1 Routine, 5 Entry Tags Checked 9 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ^%utt4 ------------------- MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....--------- [OK] Ran 1 Routine, 1 Entry Tag Checked 4 tests, with 0 failures and encountered 0 errors. ------------ SUMMARY ------------ Ran 2 Routines, 6 Entry Tags Checked 13 tests, with 0 failures and encountered 0 errors. xxxxxxxxxxxxxxxxxxxx GOING TO COVERAGE for %utt4 and %ut at 3 ------------------- RUNNING ^%ut ------------------- RUNNING COMMAND LINE TESTS VIA DOSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. Running command line tests by RUNSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. RUNNING COMMAND LINE UNIT TESTS FOR %utt5 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. RUNNING UNIT TESTS FOR %utt5 VIA GUI CALLS - Silent NOW RUNNING UNIT TESTS FOR %uttcovr ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. NOW RUNNING UNIT TESTS FOR %utt6 ......... Ran 1 Routine, 5 Entry Tags Checked 9 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ^%utt4 ------------------- MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....--------- [OK] Ran 1 Routine, 1 Entry Tag Checked 4 tests, with 0 failures and encountered 0 errors. ------------ SUMMARY ------------ Ran 2 Routines, 6 Entry Tags Checked 13 tests, with 0 failures and encountered 0 errors. Routine %utt3 (73.68%) 14 out of 19 lines covered - Detailed Breakdown Tag %utt3^%utt3 ------ 0 out of 0 lines covered Tag INTERNAL^%utt3 (40.00%) 2 out of 5 lines covered the following is a list of the lines **NOT** covered INTERNAL+3 S A=2 ; Dead code INTERNAL+4 S Y=2 ; Dead code INTERNAL+5 QUIT ; Dead code Tag SETUP^%utt3 (100.00%) 1 out of 1 lines covered Tag SHUTDOWN^%utt3 (100.00%) 1 out of 1 lines covered Tag STARTUP^%utt3 (100.00%) 3 out of 3 lines covered Tag T1^%utt3 (100.00%) 2 out of 2 lines covered Tag T2^%utt3 (60.00%) 3 out of 5 lines covered the following is a list of the lines **NOT** covered T2+4 S X=1 ; Dead code T2+5 QUIT ; Dead code Tag TEARDOWN^%utt3 (100.00%) 2 out of 2 lines covered Tag XTMUNITV^%utt3 ------ 0 out of 0 lines covered Routine %utt3 (73.68%) 14 out of 19 lines covered - Summary Tag %utt3^%utt3 ------ 0 out of 0 lines covered Tag INTERNAL^%utt3 (40.00%) 2 out of 5 lines covered Tag SETUP^%utt3 (100.00%) 1 out of 1 lines covered Tag SHUTDOWN^%utt3 (100.00%) 1 out of 1 lines covered Tag STARTUP^%utt3 (100.00%) 3 out of 3 lines covered Tag T1^%utt3 (100.00%) 2 out of 2 lines covered Tag T2^%utt3 (60.00%) 3 out of 5 lines covered Tag TEARDOWN^%utt3 (100.00%) 2 out of 2 lines covered Tag XTMUNITV^%utt3 ------ 0 out of 0 lines covered Routine %utt3 (73.68%) 14 out of 19 lines covered Overall Analysis 14 out of 19 lines covered (73% coverage) xxxxxxxxxxxxxxxxxxxx LISTING DATA VIA LIST Routine %utt3 (73.68%) 14 out of 19 lines covered - Detailed Breakdown Tag %utt3^%utt3 ------ 0 out of 0 lines covered Tag INTERNAL^%utt3 (40.00%) 2 out of 5 lines covered the following is a list of the lines **NOT** covered INTERNAL+3 S A=2 ; Dead code INTERNAL+4 S Y=2 ; Dead code INTERNAL+5 QUIT ; Dead code Tag SETUP^%utt3 (100.00%) 1 out of 1 lines covered Tag SHUTDOWN^%utt3 (100.00%) 1 out of 1 lines covered Tag STARTUP^%utt3 (100.00%) 3 out of 3 lines covered Tag T1^%utt3 (100.00%) 2 out of 2 lines covered Tag T2^%utt3 (60.00%) 3 out of 5 lines covered the following is a list of the lines **NOT** covered T2+4 S X=1 ; Dead code T2+5 QUIT ; Dead code Tag TEARDOWN^%utt3 (100.00%) 2 out of 2 lines covered Tag XTMUNITV^%utt3 ------ 0 out of 0 lines covered Routine %utt3 (73.68%) 14 out of 19 lines covered - Summary Tag %utt3^%utt3 ------ 0 out of 0 lines covered Tag INTERNAL^%utt3 (40.00%) 2 out of 5 lines covered Tag SETUP^%utt3 (100.00%) 1 out of 1 lines covered Tag SHUTDOWN^%utt3 (100.00%) 1 out of 1 lines covered Tag STARTUP^%utt3 (100.00%) 3 out of 3 lines covered Tag T1^%utt3 (100.00%) 2 out of 2 lines covered Tag T2^%utt3 (60.00%) 3 out of 5 lines covered Tag TEARDOWN^%utt3 (100.00%) 2 out of 2 lines covered Tag XTMUNITV^%utt3 ------ 0 out of 0 lines covered Routine %utt3 (73.68%) 14 out of 19 lines covered Overall Analysis 14 out of 19 lines covered (73% coverage) xxxxxxxxxxxxxxxxxxxx Finished in ENTRY^%uttcovr ------------------- RUNNING VERBOSE^%utt6 ------------------- RUNNING COMMAND LINE TESTS VIA DOSET^%ut T1 - - Make sure Start-up Ran.----------------------------------------- [OK] T2 - - Make sure Set-up runs.------------------------------------------ [OK] T3 - - Make sure Teardown runs.---------------------------------------- [OK] T4 - Entry point using XTMENT.----------------------------------------- [OK] T5 - Error count check T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure .---------------------------------------------------------------------- [FAIL] T6 - Succeed Entry Point...-------------------------------------------- [OK] T7 - Make sure we write to principal even though we are on another device..[OK] T8 - If IO starts with another device, write to that device as if it's the prici pal device.------------------------------------------------------------ [OK] COVRPTGL - coverage report returning global....------------------------ [OK] T11 - An @TEST Entry point in Another Routine invoked through XTROU offsets.[OK] T12 - An XTENT offset entry point in Another Routine invoked through XTROU offse ts.-------------------------------------------------------------------- [OK] T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....--------- [OK] NEWSTYLE - identify new style test indicator functionality.------------ [OK] OLDSTYLE - identify old style test indicator functionality..---------- [OK] OLDSTYL1 - identify old style test indicator 2.----------------------- [OK] BADCHKEQ - CHKEQ should fail on unequal value BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADCHKTF - CHKTF should fail on false value BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADERROR - throws an error on purpose BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q ----------------------------------------------------------------------- [FAIL] CALLFAIL - called FAIL to test it CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it ----------------------------------------------------------------------- [FAIL] LEAKSOK - check leaks should be ok------------------------------------- [OK] LEAKSBAD - check leaks with leak LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X ----------------------------------------------------------------------- [FAIL] NVLDARG1 - check invalid arg in CHKEQ NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ----------------------------------------------------------------------- [FAIL] ISUTEST - check ISUTEST inside unit test.------------------------------ [OK] SETROUS - - generate array with indices of routines to exclude......--- [OK] CHKCMDLN - check command line processing of %utt5---------------------- [OK] CHKGUI - check GUI processing of %utt5--------------------------------- [OK] CKGUISET - check list of tests returned by GUISET---------------------- [OK] NEWSTYLE - test return of valid new style or @TEST indicators...------- [OK] RTNANAL - - routine analysis...---------------------------------------- [OK] COVCOV - - check COVCOV - remove seen lines......---------------------- [OK] COVRPT...........------------------------------------------------------ [OK] COVRPTLS - - coverage report returning text in global...........------- [OK] TRIMDATA - - TRIMDATA in %utcover..------------------------------------ [OK] LIST - - LIST in %utcover............---------------------------------- [OK] CACHECOV - - set up routine for analysis in globals..------------------ [OK] LINEDATA - - convert code line to based on tags and offset, and identify active code lines............------------------------------------------------- [OK] TOTAGS - - convert from lines of code by line number to lines ordered by tag, li ne from tag, and only not covered...........--------------------------- [OK] Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. Running command line tests by RUNSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. RUNNING COMMAND LINE UNIT TESTS FOR %utt5 NEWSTYLE - identify new style test indicator functionality.------------ [OK] OLDSTYLE - identify old style test indicator functionality..---------- [OK] OLDSTYL1 - identify old style test indicator 2.----------------------- [OK] BADCHKEQ - CHKEQ should fail on unequal value BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADCHKTF - CHKTF should fail on false value BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADERROR - throws an error on purpose BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q ----------------------------------------------------------------------- [FAIL] CALLFAIL - called FAIL to test it CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it ----------------------------------------------------------------------- [FAIL] LEAKSOK - check leaks should be ok------------------------------------- [OK] LEAKSBAD - check leaks with leak LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X ----------------------------------------------------------------------- [FAIL] NVLDARG1 - check invalid arg in CHKEQ NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ----------------------------------------------------------------------- [FAIL] ISUTEST - check ISUTEST inside unit test.------------------------------ [OK] Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. RUNNING UNIT TESTS FOR %utt5 VIA GUI CALLS - Silent NOW RUNNING UNIT TESTS FOR %uttcovr RTNANAL - - routine analysis...---------------------------------------- [OK] COVCOV - - check COVCOV - remove seen lines......---------------------- [OK] COVRPT...........------------------------------------------------------ [OK] COVRPTLS - - coverage report returning text in global...........------- [OK] TRIMDATA - - TRIMDATA in %utcover..------------------------------------ [OK] LIST - - LIST in %utcover............---------------------------------- [OK] CACHECOV - - set up routine for analysis in globals..------------------ [OK] LINEDATA - - convert code line to based on tags and offset, and identify active code lines............------------------------------------------------- [OK] TOTAGS - - convert from lines of code by line number to lines ordered by tag, li ne from tag, and only not covered...........--------------------------- [OK] Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. NOW RUNNING UNIT TESTS FOR %utt6 SETROUS - - generate array with indices of routines to exclude......--- [OK] CHKCMDLN - check command line processing of %utt5---------------------- [OK] CHKGUI - check GUI processing of %utt5--------------------------------- [OK] CKGUISET - check list of tests returned by GUISET---------------------- [OK] NEWSTYLE - test return of valid new style or @TEST indicators...------- [OK] Ran 1 Routine, 5 Entry Tags Checked 9 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ^%ut ------------------- RUNNING COMMAND LINE TESTS VIA DOSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. Running command line tests by RUNSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. RUNNING COMMAND LINE UNIT TESTS FOR %utt5 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. RUNNING UNIT TESTS FOR %utt5 VIA GUI CALLS - Silent NOW RUNNING UNIT TESTS FOR %uttcovr ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. NOW RUNNING UNIT TESTS FOR %utt6 ......... Ran 1 Routine, 5 Entry Tags Checked 9 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ^%ut1 ------------------- RUNNING COMMAND LINE TESTS VIA DOSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. Running command line tests by RUNSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. RUNNING COMMAND LINE UNIT TESTS FOR %utt5 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. RUNNING UNIT TESTS FOR %utt5 VIA GUI CALLS - Silent NOW RUNNING UNIT TESTS FOR %uttcovr ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. NOW RUNNING UNIT TESTS FOR %utt6 ......... Ran 1 Routine, 5 Entry Tags Checked 9 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ^%utcover ------------------- ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. ------------------- RUNNING ^%utt1 ------------------- T1 - - Make sure Start-up Ran.----------------------------------------- [OK] T2 - - Make sure Set-up runs.------------------------------------------ [OK] T3 - - Make sure Teardown runs.---------------------------------------- [OK] T4 - Entry point using XTMENT.----------------------------------------- [OK] T5 - Error count check T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure .---------------------------------------------------------------------- [FAIL] T6 - Succeed Entry Point...-------------------------------------------- [OK] T7 - Make sure we write to principal even though we are on another device..[OK] T8 - If IO starts with another device, write to that device as if it's the prici pal device.------------------------------------------------------------ [OK] COVRPTGL - coverage report returning global....------------------------ [OK] T11 - An @TEST Entry point in Another Routine invoked through XTROU offsets.[OK] T12 - An XTENT offset entry point in Another Routine invoked through XTROU offse ts.-------------------------------------------------------------------- [OK] MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....--------- [OK] NEWSTYLE - identify new style test indicator functionality.------------ [OK] OLDSTYLE - identify old style test indicator functionality..---------- [OK] OLDSTYL1 - identify old style test indicator 2.----------------------- [OK] BADCHKEQ - CHKEQ should fail on unequal value BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADCHKTF - CHKTF should fail on false value BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL ----------------------------------------------------------------------- [FAIL] BADERROR - throws an error on purpose BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q ----------------------------------------------------------------------- [FAIL] CALLFAIL - called FAIL to test it CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it ----------------------------------------------------------------------- [FAIL] LEAKSOK - check leaks should be ok------------------------------------- [OK] LEAKSBAD - check leaks with leak LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X ----------------------------------------------------------------------- [FAIL] NVLDARG1 - check invalid arg in CHKEQ NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ----------------------------------------------------------------------- [FAIL] ISUTEST - check ISUTEST inside unit test.------------------------------ [OK] SETROUS - - generate array with indices of routines to exclude......--- [OK] CHKCMDLN - check command line processing of %utt5---------------------- [OK] CHKGUI - check GUI processing of %utt5--------------------------------- [OK] CKGUISET - check list of tests returned by GUISET---------------------- [OK] NEWSTYLE - test return of valid new style or @TEST indicators...------- [OK] RTNANAL - - routine analysis...---------------------------------------- [OK] COVCOV - - check COVCOV - remove seen lines......---------------------- [OK] COVRPT...........------------------------------------------------------ [OK] COVRPTLS - - coverage report returning text in global...........------- [OK] TRIMDATA - - TRIMDATA in %utcover..------------------------------------ [OK] LIST - - LIST in %utcover............---------------------------------- [OK] CACHECOV - - set up routine for analysis in globals..------------------ [OK] LINEDATA - - convert code line to based on tags and offset, and identify active code lines............------------------------------------------------- [OK] TOTAGS - - convert from lines of code by line number to lines ordered by tag, li ne from tag, and only not covered...........--------------------------- [OK] Ran 6 Routines, 37 Entry Tags Checked 113 tests, with 7 failures and encountered 1 error. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- T1 - - Make sure Start-up Ran.------------------------------------- [OK] 0ms T2 - - Make sure Set-up runs.-------------------------------------- [OK] 0ms T3 - - Make sure Teardown runs.------------------------------------ [OK] 0ms T4 - Entry point using XTMENT.------------------------------------- [OK] 0ms T5 - Error count check T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure .------------------------------------------------------------------ [FAIL] 0ms T6 - Succeed Entry Point...---------------------------------------- [OK] 0ms T7 - Make sure we write to principal even though we are on another device..[OK] 0ms T8 - If IO starts with another device, write to that device as if it's the prici pal device.------------------------------------------------------- [OK] 15ms COVRPTGL - coverage report returning global....-------------------- [OK] 0ms T11 - An @TEST Entry point in Another Routine invoked through XTROU offsets.[OK] 0ms T12 - An XTENT offset entry point in Another Routine invoked through XTROU offse ts.---------------------------------------------------------------- [OK] 0ms MAIN - - Test coverage calculations T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors.....----- [OK] 0ms NEWSTYLE - identify new style test indicator functionality.-------- [OK] 0ms OLDSTYLE - identify old style test indicator functionality..------ [OK] 0ms OLDSTYL1 - identify old style test indicator 2.------------------- [OK] 0ms BADCHKEQ - CHKEQ should fail on unequal value BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL ------------------------------------------------------------------- [FAIL] 0ms BADCHKTF - CHKTF should fail on false value BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL ------------------------------------------------------------------- [FAIL] 0ms BADERROR - throws an error on purpose BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q ------------------------------------------------------------------- [FAIL] 0ms CALLFAIL - called FAIL to test it CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it ------------------------------------------------------------------- [FAIL] 0ms LEAKSOK - check leaks should be ok--------------------------------- [OK] 0ms LEAKSBAD - check leaks with leak LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X ------------------------------------------------------------------- [FAIL] 0ms NVLDARG1 - check invalid arg in CHKEQ NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ------------------------------------------------------------------- [FAIL] 0ms ISUTEST - check ISUTEST inside unit test.-------------------------- [OK] 0ms SETROUS - - generate array with indices of routines to exclude...... [OK] 0ms CHKCMDLN - check command line processing of %utt5------------------ [OK] 0ms CHKGUI - check GUI processing of %utt5----------------------------- [OK] 0ms CKGUISET - check list of tests returned by GUISET------------------ [OK] 0ms NEWSTYLE - test return of valid new style or @TEST indicators...--- [OK] 0ms RTNANAL - - routine analysis...------------------------------------ [OK] 0ms COVCOV - - check COVCOV - remove seen lines......------------------ [OK] 0ms COVRPT...........-------------------------------------------------- [OK] 0ms COVRPTLS - - coverage report returning text in global...........--- [OK] 0ms TRIMDATA - - TRIMDATA in %utcover..-------------------------------- [OK] 0ms LIST - - LIST in %utcover............------------------------------ [OK] 0ms CACHECOV - - set up routine for analysis in globals..------------- [OK] 16ms LINEDATA - - convert code line to based on tags and offset, and identify active code lines............--------------------------------------------- [OK] 0ms TOTAGS - - convert from lines of code by line number to lines ordered by tag, li ne from tag, and only not covered...........----------------------- [OK] 0ms Ran 6 Routines, 37 Entry Tags Checked 113 tests, with 7 failures and encountered 1 error. ------------------- RUNNING ^%utt6 ------------------- RUNNING COMMAND LINE TESTS VIA DOSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. Running command line tests by RUNSET^%ut .... T5^%utt1 - Error count check - This is an intentional failure. . T5^%utt1 - Error count check - Intentionally throwing a failure ............... T1 - Test 1.----------------------------------------------------------- [OK] T2 - Test 2.----------------------------------------------------------- [OK] Ran 1 Routine, 2 Entry Tags Checked 2 tests, with 0 failures and encountered 0 errors......... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible ................................................................................ Ran 7 Routines, 39 Entry Tags Checked 115 tests, with 7 failures and encountered 1 error. RUNNING COMMAND LINE UNIT TESTS FOR %utt5 .... BADCHKEQ^%utt5 - CHKEQ should fail on unequal value - <4> vs <3> - SET UNEQUAL ON PURPOSE - SHOULD FAIL BADCHKTF^%utt5 - CHKTF should fail on false value - SET FALSE (0) ON PURPOSE - SHOULD FAIL BADERROR^%utt5 - throws an error on purpose - Error: BADERROR+6^%utt 5 *Q CALLFAIL^%utt5 - called FAIL to test it - Called FAIL to test it LEAKSBAD^%utt5 - check leaks with leak - LEAKSBAD TEST - X NOT SPECIFIED VARIABL E LEAK: X NVLDARG1^%utt5 - check invalid arg in CHKEQ - NO VALUES INPUT TO CHKEQ^%ut - no evaluation possible . Ran 1 Routine, 11 Entry Tags Checked 10 tests, with 5 failures and encountered 1 error. RUNNING UNIT TESTS FOR %utt5 VIA GUI CALLS - Silent NOW RUNNING UNIT TESTS FOR %uttcovr ...................................................................... Ran 1 Routine, 9 Entry Tags Checked 70 tests, with 0 failures and encountered 0 errors. NOW RUNNING UNIT TESTS FOR %utt6 ......... Ran 1 Routine, 5 Entry Tags Checked 9 tests, with 0 failures and encountered 0 errors. ------------ SUMMARY ------------ Ran 18 Routines, 112 Entry Tags Checked 398 tests, with 14 failures and encountered 2 errors. -------------------------- START OF COMMENT ------------------- The following initial listing is for verbosity 3 when running coverage analysis and includes listing of lines that are not covered within a routine for each tag -------------------------- END OF COMMENT ------------------- Routine %ut (100.00%) 266 out of 266 lines covered - Detailed Breakdown Tag %ut^%ut (100.00%) 2 out of 2 lines covered Tag CHKEQ^%ut (100.00%) 17 out of 17 lines covered Tag CHKLEAKS^%ut (100.00%) 13 out of 13 lines covered Tag CHKTF^%ut (100.00%) 14 out of 14 lines covered Tag COV^%ut (100.00%) 2 out of 2 lines covered Tag COVERAGE^%ut (100.00%) 2 out of 2 lines covered Tag DOSET^%ut (100.00%) 6 out of 6 lines covered Tag EN^%ut (100.00%) 6 out of 6 lines covered Tag EN1^%ut (100.00%) 52 out of 52 lines covered Tag ERROR^%ut (100.00%) 9 out of 9 lines covered Tag ERROR1^%ut (100.00%) 7 out of 7 lines covered Tag FAIL^%ut (100.00%) 2 out of 2 lines covered Tag GETLIST^%ut (100.00%) 11 out of 11 lines covered Tag GETSET^%ut (100.00%) 4 out of 4 lines covered Tag GETUTVAL^%ut (100.00%) 5 out of 5 lines covered Tag GUILOAD^%ut (100.00%) 8 out of 8 lines covered Tag GUINEXT^%ut (100.00%) 43 out of 43 lines covered Tag GUISET^%ut (100.00%) 8 out of 8 lines covered Tag ISUTEST^%ut (100.00%) 1 out of 1 lines covered Tag LOAD^%ut (100.00%) 10 out of 10 lines covered Tag LSTUTVAL^%ut (100.00%) 4 out of 4 lines covered Tag MULTAPIS^%ut (100.00%) 2 out of 2 lines covered Tag PICKSET^%ut (100.00%) 3 out of 3 lines covered Tag RUNSET^%ut (100.00%) 9 out of 9 lines covered Tag SETUT^%ut (100.00%) 6 out of 6 lines covered Tag SUCCEED^%ut (100.00%) 6 out of 6 lines covered Tag VERBOSE^%ut (100.00%) 10 out of 10 lines covered Tag VERBOSE1^%ut (100.00%) 4 out of 4 lines covered Routine %ut1 (88.56%) 240 out of 271 lines covered - Detailed Breakdown Tag %ut1^%ut1 (100.00%) 2 out of 2 lines covered Tag ACTLINES^%ut1 (100.00%) 8 out of 8 lines covered Tag CACHECOV^%ut1 (100.00%) 12 out of 12 lines covered Tag CHECKTAG^%ut1 (100.00%) 10 out of 10 lines covered Tag CHEKTEST^%ut1 (100.00%) 9 out of 9 lines covered Tag COV^%ut1 (52.31%) 34 out of 65 lines covered the following is a list of the lines **NOT** covered COV+17 . N %ZR ; GT.M specific COV+18 . D SILENT^%RSEL(NMSP,"SRC") ; GT.M specific. On Cache use $O(^$R( RTN)). COV+19 . N RN S RN="" COV+20 . W !,"Loading routines to test coverage...",! COV+21 . F S RN=$O(%ZR(RN)) Q:RN="" W RN," " D COV+22 . . N L2 S L2=$T(+2^@RN) COV+24 . . S L2=$TR(L2,$C(9)," ") ; change tabs to spaces ; JLI 160316 in serted to replace above COV+27 . . I $E($P(L2," ",2),1,2)'=";;" K %ZR(RN) W !,"Routine "_RN_" rem oved from analysis, since it doesn't have the standard second line" ; JLI 160316 inserted to replace above COV+29 . M RTNS=%ZR COV+30 . K %ZR COV+31 . Q COV+48 . K ^TMP("%utCOVCOHORTSAV",$J) COV+49 . M ^TMP("%utCOVCOHORTSAV",$J)=^TMP("%utCOVCOHORT",$J) COV+50 . K ^TMP("%utCOVRESULT",$J) COV+51 . S ^TMP("%utcovrunning",$J)=1,%utcovxx=1 COV+53 . I (+$SY=47) VIEW "TRACE":1:$NA(^TMP("%utCOVRESULT",$J)) ; GT.M START PROFILING COV+55 . I (+$SY=0) D ; CACHE CODE TO START PROFILING COV+56 . . S STATUS=##class(%Monitor.System.LineByLine).Start($lb(NMSP),$ lb("RtnLine"),$lb($j)) COV+64 . . SET $ETRAP="Q:($ES&$Q) -9 Q:$ES W ""CTRL-C ENTERED""" COV+65 . . USE $PRINCIPAL:(CTRAP=$C(3)) COV+66 . . Q COV+82 . . D TOTAGS(COVERSAV,0),TOTAGS(COVER,1) COV+83 . . D ##class(%Monitor.System.LineByLine).Stop() COV+84 . . Q COV+85 . D COVCOV($NA(^TMP("%utCOVCOHORT",$J)),$NA(^TMP("%utCOVRESULT",$J ))) ; Venn diagram matching between globals COV+87 . I VERBOSITY=-1 D COV+88 . . K ^TMP("%utCOVREPORT",$J) COV+89 . . D COVRPTGL($NA(^TMP("%utCOVCOHORTSAV",$J)),$NA(^TMP("%utCOVCOH ORT",$J)),$NA(^TMP("%utCOVRESULT",$J)),$NA(^TMP("%utCOVREPORT",$J))) COV+90 . . Q COV+91 . E D COVRPT($NA(^TMP("%utCOVCOHORTSAV",$J)),$NA(^TMP("%utCOVCOHO RT",$J)),$NA(^TMP("%utCOVRESULT",$J)),VERBOSITY) COV+92 . Q Tag COVCOV^%ut1 (100.00%) 9 out of 9 lines covered Tag COVRPT^%ut1 (100.00%) 5 out of 5 lines covered Tag COVRPTGL^%ut1 (100.00%) 14 out of 14 lines covered Tag COVRPTLS^%ut1 (100.00%) 31 out of 31 lines covered Tag FAIL^%ut1 (100.00%) 12 out of 12 lines covered Tag GETTAG^%ut1 (100.00%) 4 out of 4 lines covered Tag GETTREE^%ut1 (100.00%) 7 out of 7 lines covered Tag GETVALS^%ut1 (100.00%) 11 out of 11 lines covered Tag ISUTEST^%ut1 (100.00%) 1 out of 1 lines covered Tag LINEDATA^%ut1 (100.00%) 9 out of 9 lines covered Tag NEWSTYLE^%ut1 (100.00%) 4 out of 4 lines covered Tag NVLDARG^%ut1 (100.00%) 11 out of 11 lines covered Tag RESETIO^%ut1 (100.00%) 2 out of 2 lines covered Tag RTNANAL^%ut1 (100.00%) 29 out of 29 lines covered Tag SETIO^%ut1 (100.00%) 2 out of 2 lines covered Tag TOTAGS^%ut1 (100.00%) 13 out of 13 lines covered Tag UP^%ut1 (100.00%) 1 out of 1 lines covered Routine %utcover (100.00%) 79 out of 79 lines covered - Detailed Breakdown Tag %utcover^%utcover (100.00%) 2 out of 2 lines covered Tag COVENTRY^%utcover (100.00%) 14 out of 14 lines covered Tag COVERAGE^%utcover (100.00%) 13 out of 13 lines covered Tag LIST^%utcover (100.00%) 38 out of 38 lines covered Tag MULTAPIS^%utcover (100.00%) 5 out of 5 lines covered Tag SETROUS^%utcover (100.00%) 4 out of 4 lines covered Tag TRIMDATA^%utcover (100.00%) 3 out of 3 lines covered -------------------------- START OF COMMENT ------------------- The following is the default listing for coverage by tag for verbosity values of 2 and 3 -------------------------- END OF COMMENT ------------------- Routine %ut (100.00%) 266 out of 266 lines covered - Summary Tag %ut^%ut (100.00%) 2 out of 2 lines covered Tag CHKEQ^%ut (100.00%) 17 out of 17 lines covered Tag CHKLEAKS^%ut (100.00%) 13 out of 13 lines covered Tag CHKTF^%ut (100.00%) 14 out of 14 lines covered Tag COV^%ut (100.00%) 2 out of 2 lines covered Tag COVERAGE^%ut (100.00%) 2 out of 2 lines covered Tag DOSET^%ut (100.00%) 6 out of 6 lines covered Tag EN^%ut (100.00%) 6 out of 6 lines covered Tag EN1^%ut (100.00%) 52 out of 52 lines covered Tag ERROR^%ut (100.00%) 9 out of 9 lines covered Tag ERROR1^%ut (100.00%) 7 out of 7 lines covered Tag FAIL^%ut (100.00%) 2 out of 2 lines covered Tag GETLIST^%ut (100.00%) 11 out of 11 lines covered Tag GETSET^%ut (100.00%) 4 out of 4 lines covered Tag GETUTVAL^%ut (100.00%) 5 out of 5 lines covered Tag GUILOAD^%ut (100.00%) 8 out of 8 lines covered Tag GUINEXT^%ut (100.00%) 43 out of 43 lines covered Tag GUISET^%ut (100.00%) 8 out of 8 lines covered Tag ISUTEST^%ut (100.00%) 1 out of 1 lines covered Tag LOAD^%ut (100.00%) 10 out of 10 lines covered Tag LSTUTVAL^%ut (100.00%) 4 out of 4 lines covered Tag MULTAPIS^%ut (100.00%) 2 out of 2 lines covered Tag PICKSET^%ut (100.00%) 3 out of 3 lines covered Tag RUNSET^%ut (100.00%) 9 out of 9 lines covered Tag SETUT^%ut (100.00%) 6 out of 6 lines covered Tag SUCCEED^%ut (100.00%) 6 out of 6 lines covered Tag VERBOSE^%ut (100.00%) 10 out of 10 lines covered Tag VERBOSE1^%ut (100.00%) 4 out of 4 lines covered Routine %ut1 (88.56%) 240 out of 271 lines covered - Summary Tag %ut1^%ut1 (100.00%) 2 out of 2 lines covered Tag ACTLINES^%ut1 (100.00%) 8 out of 8 lines covered Tag CACHECOV^%ut1 (100.00%) 12 out of 12 lines covered Tag CHECKTAG^%ut1 (100.00%) 10 out of 10 lines covered Tag CHEKTEST^%ut1 (100.00%) 9 out of 9 lines covered Tag COV^%ut1 (52.31%) 34 out of 65 lines covered Tag COVCOV^%ut1 (100.00%) 9 out of 9 lines covered Tag COVRPT^%ut1 (100.00%) 5 out of 5 lines covered Tag COVRPTGL^%ut1 (100.00%) 14 out of 14 lines covered Tag COVRPTLS^%ut1 (100.00%) 31 out of 31 lines covered Tag FAIL^%ut1 (100.00%) 12 out of 12 lines covered Tag GETTAG^%ut1 (100.00%) 4 out of 4 lines covered Tag GETTREE^%ut1 (100.00%) 7 out of 7 lines covered Tag GETVALS^%ut1 (100.00%) 11 out of 11 lines covered Tag ISUTEST^%ut1 (100.00%) 1 out of 1 lines covered Tag LINEDATA^%ut1 (100.00%) 9 out of 9 lines covered Tag NEWSTYLE^%ut1 (100.00%) 4 out of 4 lines covered Tag NVLDARG^%ut1 (100.00%) 11 out of 11 lines covered Tag RESETIO^%ut1 (100.00%) 2 out of 2 lines covered Tag RTNANAL^%ut1 (100.00%) 29 out of 29 lines covered Tag SETIO^%ut1 (100.00%) 2 out of 2 lines covered Tag TOTAGS^%ut1 (100.00%) 13 out of 13 lines covered Tag UP^%ut1 (100.00%) 1 out of 1 lines covered Routine %utcover (100.00%) 79 out of 79 lines covered - Summary Tag %utcover^%utcover (100.00%) 2 out of 2 lines covered Tag COVENTRY^%utcover (100.00%) 14 out of 14 lines covered Tag COVERAGE^%utcover (100.00%) 13 out of 13 lines covered Tag LIST^%utcover (100.00%) 38 out of 38 lines covered Tag MULTAPIS^%utcover (100.00%) 5 out of 5 lines covered Tag SETROUS^%utcover (100.00%) 4 out of 4 lines covered Tag TRIMDATA^%utcover (100.00%) 3 out of 3 lines covered -------------------------- START OF COMMENT ------------------- The following is output for any coverage analysis using the COVERAGE^%ut API -------------------------- END OF COMMENT ------------------- Routine %ut (100.00%) 266 out of 266 lines covered Routine %ut1 (88.56%) 240 out of 271 lines covered Routine %utcover (100.00%) 79 out of 79 lines covered Overall Analysis 585 out of 616 lines covered (94% coverage) VISTA>