1-- REPSPEC.ADA
2--
3--                             Grant of Unlimited Rights
4--
5--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7--     unlimited rights in the software and documentation contained herein.
8--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
9--     this public release, the Government intends to confer upon all
10--     recipients unlimited rights  equal to those held by the Government.
11--     These rights include rights to use, duplicate, release or disclose the
12--     released technical data and computer software in whole or in part, in
13--     any manner and for any purpose whatsoever, and to have or permit others
14--     to do so.
15--
16--                                    DISCLAIMER
17--
18--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23--     PARTICULAR PURPOSE OF SAID MATERIAL.
24--*
25--
26-- PURPOSE:
27--      THIS REPORT PACKAGE PROVIDES THE MECHANISM FOR REPORTING THE
28--      PASS/FAIL/NOT-APPLICABLE RESULTS OF EXECUTABLE (CLASSES A, C,
29--      D, E, AND L) TESTS.
30
31--      IT ALSO PROVIDES THE MECHANISM FOR GUARANTEEING THAT CERTAIN
32--      VALUES BECOME DYNAMIC (NOT KNOWN AT COMPILE-TIME).
33
34-- HISTORY:
35--      JRK 12/13/79
36--      JRK 06/10/80
37--      JRK 08/06/81
38--      JRK 10/27/82
39--      JRK 06/01/84
40--      PWB 07/30/87  ADDED PROCEDURE SPECIAL_ACTION.
41--      TBN 08/20/87  ADDED FUNCTION LEGAL_FILE_NAME.
42--      BCB 05/17/90  ADDED FUNCTION TIME_STAMP.
43--      WMC 01/24/94  INCREASED RANGE OF TYPE FILE_NUM FROM 1..3 TO 1..5.
44--      KAS 06/19/95  ADDED FUNCTION IDENT_WIDE_CHAR.
45--      KAS 06/19/95  ADDED FUNCTION IDENT_WIDE_STR.
46
47PACKAGE REPORT IS
48
49     SUBTYPE FILE_NUM IS INTEGER RANGE 1..5;
50
51  -- THE REPORT ROUTINES.
52
53     PROCEDURE TEST           -- THIS ROUTINE MUST BE INVOKED AT THE
54                              -- START OF A TEST, BEFORE ANY OF THE
55                              -- OTHER REPORT ROUTINES ARE INVOKED.
56                              -- IT SAVES THE TEST NAME AND OUTPUTS THE
57                              -- NAME AND DESCRIPTION.
58        ( NAME : STRING;      -- TEST NAME, E.G., "C23001A-AB".
59          DESCR : STRING      -- BRIEF DESCRIPTION OF TEST, E.G.,
60                              -- "UPPER/LOWER CASE EQUIVALENCE IN " &
61                              -- "IDENTIFIERS".
62        );
63
64     PROCEDURE FAILED         -- OUTPUT A FAILURE MESSAGE.  SHOULD BE
65                              -- INVOKED SEPARATELY TO REPORT THE
66                              -- FAILURE OF EACH SUBTEST WITHIN A TEST.
67        ( DESCR : STRING      -- BRIEF DESCRIPTION OF WHAT FAILED.
68                              -- SHOULD BE PHRASED AS:
69                              -- "(FAILED BECAUSE) ...REASON...".
70        );
71
72     PROCEDURE NOT_APPLICABLE -- OUTPUT A NOT-APPLICABLE MESSAGE.
73                              -- SHOULD BE INVOKED SEPARATELY TO REPORT
74                              -- THE NON-APPLICABILITY OF EACH SUBTEST
75                              -- WITHIN A TEST.
76        ( DESCR : STRING      -- BRIEF DESCRIPTION OF WHAT IS
77                              -- NOT-APPLICABLE. SHOULD BE PHRASED AS:
78                              -- "(NOT-APPLICABLE BECAUSE)...REASON...".
79        );
80
81     PROCEDURE SPECIAL_ACTION -- OUTPUT A MESSAGE DESCRIBING SPECIAL
82                              -- ACTIONS TO BE TAKEN.
83                              -- SHOULD BE INVOKED SEPARATELY TO GIVE
84                              -- EACH SPECIAL ACTION.
85        ( DESCR : STRING      -- BRIEF DESCRIPTION OF ACTION TO BE
86                              -- TAKEN.
87        );
88
89     PROCEDURE COMMENT        -- OUTPUT A COMMENT MESSAGE.
90        ( DESCR : STRING      -- THE MESSAGE.
91        );
92
93     PROCEDURE RESULT;        -- THIS ROUTINE MUST BE INVOKED AT THE
94                              -- END OF A TEST.  IT OUTPUTS A MESSAGE
95                              -- INDICATING WHETHER THE TEST AS A
96                              -- WHOLE HAS PASSED, FAILED, IS
97                              -- NOT-APPLICABLE, OR HAS TENTATIVELY
98                              -- PASSED PENDING SPECIAL ACTIONS.
99
100  -- THE DYNAMIC VALUE ROUTINES.
101
102     -- EVEN WITH STATIC ARGUMENTS, THESE FUNCTIONS WILL HAVE DYNAMIC
103     -- RESULTS.
104
105     FUNCTION IDENT_INT       -- AN IDENTITY FUNCTION FOR TYPE INTEGER.
106        ( X : INTEGER         -- THE ARGUMENT.
107        ) RETURN INTEGER;     -- X.
108
109     FUNCTION IDENT_CHAR      -- AN IDENTITY FUNCTION FOR TYPE
110                              -- CHARACTER.
111        ( X : CHARACTER       -- THE ARGUMENT.
112        ) RETURN CHARACTER;   -- X.
113
114     FUNCTION IDENT_WIDE_CHAR -- AN IDENTITY FUNCTION FOR TYPE
115                              -- WIDE_CHARACTER.
116        ( X : WIDE_CHARACTER  -- THE ARGUMENT.
117        ) RETURN WIDE_CHARACTER; -- X.
118
119     FUNCTION IDENT_BOOL      -- AN IDENTITY FUNCTION FOR TYPE BOOLEAN.
120        ( X : BOOLEAN         -- THE ARGUMENT.
121        ) RETURN BOOLEAN;     -- X.
122
123     FUNCTION IDENT_STR       -- AN IDENTITY FUNCTION FOR TYPE STRING.
124        ( X : STRING          -- THE ARGUMENT.
125        ) RETURN STRING;      -- X.
126
127     FUNCTION IDENT_WIDE_STR  -- AN IDENTITY FUNCTION FOR TYPE WIDE_STRING.
128        ( X : WIDE_STRING     -- THE ARGUMENT.
129        ) RETURN WIDE_STRING; -- X.
130
131     FUNCTION EQUAL           -- A RECURSIVE EQUALITY FUNCTION FOR TYPE
132                              -- INTEGER.
133        ( X, Y : INTEGER      -- THE ARGUMENTS.
134        ) RETURN BOOLEAN;     -- X = Y.
135
136-- OTHER UTILITY ROUTINES.
137
138     FUNCTION LEGAL_FILE_NAME -- A FUNCTION TO GENERATE LEGAL EXTERNAL
139                              -- FILE NAMES.
140        ( X : FILE_NUM := 1;  -- DETERMINES FIRST CHARACTER OF NAME.
141          NAM : STRING := ""  -- DETERMINES REST OF NAME.
142        ) RETURN STRING;      -- THE GENERATED NAME.
143
144     FUNCTION TIME_STAMP      -- A FUNCTION TO GENERATE THE TIME AND
145                              -- DATE TO PLACE IN THE OUTPUT OF AN ACVC
146                              -- TEST.
147          RETURN STRING;      -- THE TIME AND DATE.
148
149END REPORT;
150