3 -- Grant of Unlimited Rights
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
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.
25 -- CHECK THAT CONTROL FLOWS CORRECTLY IN SIMPLE NESTED IF_STATEMENTS.
35 CI1
: CONSTANT INTEGER := 1;
36 CI9
: CONSTANT INTEGER := 9;
37 CBT
: CONSTANT BOOLEAN := TRUE;
38 CBF
: CONSTANT BOOLEAN := FALSE;
40 VI1
: INTEGER := IDENT_INT
(1);
41 VI9
: INTEGER := IDENT_INT
(9);
42 VBT
: BOOLEAN := IDENT_BOOL
(TRUE);
43 VBF
: BOOLEAN := IDENT_BOOL
(FALSE);
45 FLOW_COUNT
: INTEGER := 0;
48 TEST
("C53007A", "CHECK THAT CONTROL FLOWS CORRECTLY IN SIMPLE " &
49 "NESTED IF_STATEMENTS");
51 IF VBF
THEN -- (FALSE)
52 FAILED
("INCORRECT CONTROL FLOW 1");
53 ELSIF CI9
< 20 THEN -- (TRUE)
54 FLOW_COUNT
:= FLOW_COUNT
+ 1;
55 IF VI1
/= 0 AND TRUE THEN -- (TRUE)
56 FLOW_COUNT
:= FLOW_COUNT
+ 1;
57 ELSE FAILED
("INCORRECT CONTROL FLOW 2");
59 ELSE FAILED
("INCORRECT CONTROL FLOW 3");
62 IF CBF
OR ELSE VI9
= 9 THEN -- (TRUE)
63 IF VI1
+ CI9
> 0 OR (CBF
AND VBT
) THEN -- (TRUE)
64 FLOW_COUNT
:= FLOW_COUNT
+ 1;
66 ELSIF VBF
OR VI1
> 10 THEN -- (FALSE)
67 FAILED
("INCORRECT CONTROL FLOW 4");
70 IF NOT CBT
AND THEN NOT VBT
AND THEN CI9
< 0 THEN -- (FALSE)
71 IF FALSE OR NOT TRUE THEN -- (FALSE)
72 FAILED
("INCORRECT CONTROL FLOW 5");
73 ELSIF VI1
>= 0 THEN -- (TRUE)
75 ELSE FAILED
("INCORRECT CONTROL FLOW 6");
77 FAILED
("INCORRECT CONTROL FLOW 7");
78 ELSIF (VI1
* CI9
+ 3 < 0) OR (VBT
AND NOT (CI1
< 0)) THEN -- (TRUE)
79 FLOW_COUNT
:= FLOW_COUNT
+ 1;
80 IF NOT CBT
OR ELSE CI9
+ 1 = 0 THEN -- (FALSE)
81 FAILED
("INCORRECT CONTROL FLOW 8");
82 ELSE FLOW_COUNT
:= FLOW_COUNT
+ 1;
83 IF VI1
* 2 > 0 THEN -- (TRUE)
84 FLOW_COUNT
:= FLOW_COUNT
+ 1;
85 ELSIF TRUE THEN -- (TRUE)
86 FAILED
("INCORRECT CONTROL FLOW 9");
90 ELSIF FALSE AND CBF
THEN -- (FALSE)
91 FAILED
("INCORRECT CONTROL FLOW 10");
92 ELSE IF VBT
THEN -- (TRUE)
93 FAILED
("INCORRECT CONTROL FLOW 11");
94 ELSIF VI1
= 0 THEN -- (FALSE)
95 FAILED
("INCORRECT CONTROL FLOW 12");
96 ELSE FAILED
("INCORRECT CONTROL FLOW 13");
100 IF 3 = 5 OR NOT VBT
THEN -- (FALSE)
101 FAILED
("INCORRECT CONTROL FLOW 14");
102 IF TRUE AND CBT
THEN -- (TRUE)
103 FAILED
("INCORRECT CONTROL FLOW 15");
104 ELSE FAILED
("INCORRECT CONTROL FLOW 16");
106 ELSIF CBF
THEN -- (FALSE)
107 IF VI9
>= 0 OR FALSE THEN -- (TRUE)
108 IF VBT
THEN -- (TRUE)
109 FAILED
("INCORRECT CONTROL FLOW 17");
111 FAILED
("INCORRECT CONTROL FLOW 18");
112 ELSIF VI1
+ CI9
/= 0 THEN -- (TRUE)
113 FAILED
("INCORRECT CONTROL FLOW 19");
115 FAILED
("INCORRECT CONTROL FLOW 20");
116 ELSE IF VBT
AND CI9
- 9 = 0 THEN -- (TRUE)
117 IF FALSE THEN -- (FALSE)
118 FAILED
("INCORRECT CONTROL FLOW 21");
119 ELSIF NOT VBF
AND THEN CI1
> 0 THEN -- (TRUE)
120 FLOW_COUNT
:= FLOW_COUNT
+ 1;
121 ELSE FAILED
("INCORRECT CONTROL FLOW 22");
123 FLOW_COUNT
:= FLOW_COUNT
+ 1;
124 ELSIF NOT CBF
OR VI1
/= 0 THEN -- (TRUE)
125 IF VBT
THEN -- (TRUE)
128 FAILED
("INCORRECT CONTROL FLOW 23");
129 ELSE FAILED
("INCORRECT CONTROL FLOW 24");
131 FLOW_COUNT
:= FLOW_COUNT
+ 1;
134 IF FLOW_COUNT
/= 9 THEN
135 FAILED
("INCORRECT FLOW_COUNT VALUE");