1-- LA140032.AM 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-- OBJECTIVE: 27-- Check that a compilation unit may not depend semantically 28-- on two different versions of the same compilation unit. 29-- Check the case where a package body depends on a package 30-- specification that is changed. 31-- 32-- TEST DESCRIPTION: 33-- This test compiles a package specification, then a second 34-- package specification and body that withs the first package, 35-- followed by a procedure that makes a call to a procedure 36-- contained inside the second package. Then, the first 37-- package specification is recompiled, making the body of 38-- package LA140031 obsolete. Unless automatic recompilation 39-- is supported this test should fail to link. Otherwise, the 40-- test should recompile and link the correct version of the 41-- withed package and report "PASSED" at execution time. 42-- 43-- SPECIAL REQUIREMENTS: 44-- To build this test: 45-- 1) Compile the file LA140030 (and include the results in the 46-- program library). 47-- 2) Compile the file LA140031 (and include the results in the 48-- program library). 49-- 3) Compile the file LA140032 (and include the results in the 50-- program library). 51-- 4) Compile the file LA140033 (and include the results in the 52-- program library). 53-- 5) Attempt to build an executable image. 54-- 6) If an executable image results, run it. 55-- 56-- TEST FILES: 57-- This test consists of the following files: 58-- LA140030.A 59-- LA140031.A 60-- => LA140032.AM 61-- LA140033.A 62-- 63-- PASS/FAIL CRITERIA: 64-- The test passes if a link time error message reports that 65-- LA140031 is missing or obsolete, and no executable image 66-- results. The test also passes if an executable image is produced 67-- and reports "PASSED" (in the case where the implementation supports 68-- automatic recompilation). 69-- 70-- 71-- CHANGE HISTORY: 72-- 01 MAY 95 ACVC 1.12 LA5007K baseline version 73-- 09 MAY 95 SAIC Initial version 74-- 16 NOV 96 SAIC Changed main program name and prologue 75-- to conform to coding conventions. 76-- 77--! 78 79 80with Report; use Report; 81with LA140031; 82procedure LA140032 is 83 TC_Val : integer := 0; 84begin 85 Test ("LA14003", "Check that a compilation unit may not " & 86 "depend semantically on two different " & 87 "versions of the same compilation unit. " & 88 "Check the case where a package body " & 89 "depends on a package specification that " & 90 "is changed"); 91 92 LA140031.P (TC_Val); 93 94 if TC_Val = 100 then 95 Failed ("Obsolete unit elaborated"); 96 elsif TC_Val /= -10 then 97 Failed ("Incorrect test value"); 98 end if; 99 100 Result; 101end LA140032; 102