
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 GT.M 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-VT100

Select OPTION NAME: EVE
     1   EVE       Systems Manager Menu
     2   EVENT CAPTURE  ECX ECS MAINTENANCE     Event Capture
     3   EVENT CAPTURE (ECS) EXTRACT AU  ECX ECS SOURCE AUDIT     Event Capture 
(ECS) Extract Audit
     4   EVENT CAPTURE DATA ENTRY  ECENTER     Event Capture Data Entry
     5   EVENT CAPTURE EXTRACT  ECXEC     Event Capture Extract
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-5: 1  EVE     Systems Manager Menu

Select Systems Manager Menu Option: PROgrammer Options

Select Programmer Options Option: KIDS  Kernel Installation & Distribution Syste
m

Select Kernel Installation & Distribution System Option: INSTallation

Select Installation Option: LOAd a Distribution
Enter a Host File: C:\TEMP\M\MASH_1.3_0.KID

KIDS Distribution saved on Dec 16, 2015@10:13:18
Comment: Updated version supporting coverage analysis in Cache systems.

This Distribution contains Transport Globals for the following Package(s):
   MASH*1.3*0   
Distribution OK!

Want to Continue with Load? YES// 
Loading Distribution...

   MASH*1.3*0
This Patch is for Version 1.3, you are running Version 1

Want to continue installing this build? NO// YES
Use INSTALL NAME: MASH*1.3*0 to install this Distribution.



Select Installation Option: INSTall Package(s)
Select INSTALL NAME: MASH*1.3*0       Loaded from Distribution    12/16/15@11:03
:06
 
This Distribution was loaded on Dec 16, 2015@11:03:06 with header of 
   Updated version supporting coverage analysis in Cache systems.  ;Created on D
ec 16, 2015@10:13:18
   It consisted of the following Install(s):
     MASH*1.3*0
Checking Install for Package MASH*1.3*0
This Patch is for Version 1.3, you are running Version 1

Want to continue installing this build? NO// YES

Install Questions for MASH*1.3*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.3*0 : 
               Dec 16, 2015@11:04:04
 
Build Distribution Date: Dec 16, 2015
 
 Installing Routines:
               Dec 16, 2015@11:04:04
 
 Running Pre-Install Routine: ^ZZUTPRE
 
 Installing Data Dictionaries:
               Dec 16, 2015@11:04:04
 
 Installing Data: 
               Dec 16, 2015@11:04:04
 
 Installing PACKAGE COMPONENTS: 
 
 Installing REMOTE PROCEDURE
 
 Installing OPTION
               Dec 16, 2015@11:04:04
 
 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.3*0 Installed. 
               Dec 16, 2015@11:04:04
 
 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: <UNDEFINED>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 -------------------
 %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.  While it is recommended that 
 normally the unit tests be run when entering at the top, the 
 routines %utt6 instead run a series of different 
 unit tests and the routine %uttcovr runs coverage analysis 
 for all of the unit tests.
__________________________  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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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.

------------------- 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: <UNDEFINED>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: <UNDEFINED>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: <UNDEFINED>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.


Routine %ut            (100.00%)   256 out of 256 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%)   7 out of 7 lines covered
 Tag EN1^%ut              (100.00%)   44 out of 44 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%)   7 out of 7 lines covered
 Tag VERBOSE1^%ut         (100.00%)   4 out of 4 lines covered


Routine %ut1            (88.43%)   237 out of 268 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+23   . . S L2=$TR(L2,$C(9,32)) ; Translate spaces and tabs out
     COV+24   . . I $E(L2,1,2)'=";;" K %ZR(RN)  ; Not a human produced routine
     COV+26   . M RTNS=%ZR
     COV+27   . K %ZR
     COV+28   . Q
     COV+45   . K ^TMP("%utCOVCOHORTSAV",$J)
     COV+46   . M ^TMP("%utCOVCOHORTSAV",$J)=^TMP("%utCOVCOHORT",$J)
     COV+47   . K ^TMP("%utCOVRESULT",$J)
     COV+48   . S ^TMP("%utcovrunning",$J)=1,%utcovxx=1
     COV+50   . I (+$SY=47) VIEW "TRACE":1:$NA(^TMP("%utCOVRESULT",$J))  ; GT.M 
START PROFILING
     COV+52   . I (+$SY=0) D  ; CACHE CODE TO START PROFILING
     COV+53   . . S STATUS=##class(%Monitor.System.LineByLine).Start($lb(NMSP),$
lb("RtnLine"),$lb($j))
     COV+61   . . SET $ETRAP="Q:($ES&$Q) -9 Q:$ES  W ""CTRL-C ENTERED"""
     COV+62   . . USE $PRINCIPAL:(CTRAP=$C(3))
     COV+63   . . Q
     COV+79   . . D TOTAGS(COVERSAV,0),TOTAGS(COVER,1)
     COV+80   . . D ##class(%Monitor.System.LineByLine).Stop()
     COV+81   . . Q
     COV+82   . D COVCOV($NA(^TMP("%utCOVCOHORT",$J)),$NA(^TMP("%utCOVRESULT",$J
))) ; Venn diagram matching between globals
     COV+84   . I VERBOSITY=-1 D
     COV+85   . . K ^TMP("%utCOVREPORT",$J)
     COV+86   . . D COVRPTGL($NA(^TMP("%utCOVCOHORTSAV",$J)),$NA(^TMP("%utCOVCOH
ORT",$J)),$NA(^TMP("%utCOVRESULT",$J)),$NA(^TMP("%utCOVREPORT",$J)))
     COV+87   . . Q
     COV+88   . E  D COVRPT($NA(^TMP("%utCOVCOHORTSAV",$J)),$NA(^TMP("%utCOVCOHO
RT",$J)),$NA(^TMP("%utCOVRESULT",$J)),VERBOSITY)
     COV+89   . 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 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%)   30 out of 30 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


Routine %ut            (100.00%)   256 out of 256 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%)   7 out of 7 lines covered
 Tag EN1^%ut              (100.00%)   44 out of 44 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%)   7 out of 7 lines covered
 Tag VERBOSE1^%ut         (100.00%)   4 out of 4 lines covered


Routine %ut1            (88.43%)   237 out of 268 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 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%)   30 out of 30 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


Routine %ut     (100.00%)   256 out of 256 lines covered
Routine %ut1      (88.43%)   237 out of 268 lines covered
Routine %utcover     (100.00%)   79 out of 79 lines covered


Overall Analysis 572 out of 603 lines covered (94% coverage)
VISTA>

-------------------------- START OF COMMENT -------------------
 The output presented by the use of COVERAGE^%ut (which is 
 called by running %uttcovr from the top) presents the overall
 result as the last item in the output, with finer detail 
 available by backing up to earlier parts of the output. 
 For the verbosity variable values of zero or one only the 
 totals by routine and total for all routines is shown.  
 For a verbosity value of two, the coverage for tags within 
 the routines is shown followed by the totals for each routines 
 and for all routines.  For a value of three (as used above)
 the output first shows the routines with coverage by tags, 
 and if the coverage is less than 100%, then the lines that 
 were NOT covered during the analysis are listed as well 
 (as shown above for the routine %ut1), followed by the 
 output for tags only and for totals.
__________________________  END OF COMMENT  -------------------


VISTA>D H^XUS

End of installation, unit tests, and coverage analysis



























Logged out at Dec 16, 2015 11:08 am
VISTA>D H^XUISS

























Logged out at Dec 16, 2015 11:08 am

<Session disconnected>

