|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8192 (0x2000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Rm_070, seg_005627
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Test_Io;
with Rm_Test_Utilities;
with Xlbt_Arithmetic;
use Xlbt_Arithmetic;
with Xlbt_Display3;
use Xlbt_Display3;
with Xlbt_Rm3;
use Xlbt_Rm3;
with Xlbt_String;
use Xlbt_String;
with Xlbp_Rm;
use Xlbp_Rm;
with Xlbp_Rm_Name;
use Xlbp_Rm_Name;
procedure Rm_070 is
------------------------------------------------------------------------------
-- Tests for Xlbp_Rm - Database Search Lists
------------------------------------------------------------------------------
-- *****************************************************************************
-- * Date - /Name/ Comment
-- *
-- * 30-OCT-90 - /DRK/ Created.
-- * 19-NOV-90 - /GEB/ New RM error returns.
-- *****************************************************************************
---------------------
-- Local variables --
---------------------
Db : X_Rm_Database := None_X_Rm_Database;
----------------------------------------------------------------------
---------------
-- Utilities --
---------------
procedure Check (Condition : Boolean; Message : String) is
-- Check a condition. If it doesn't hold, print error messages.
begin
if not Condition then
Test_Io.Put_Line (Message);
Test_Io.Put_Error ("Test failed.");
end if;
end Check;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
procedure Check (Error : X_Rm_Status) is
-- Check that no errors were reported.
begin
Check (Error = Rm_Successful, "RM error");
end Check;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
procedure Add (Db : in out X_Rm_Database; Line : X_String) is
-- Add an entry to a database.
Error : X_Rm_Status;
begin
Test_Io.Put_Line ("Adding """ & To_String (Line) & '"');
X_Rm_Add_Resource (Db, Line, Error);
Check (Error);
end Add;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function Name_List (Names : X_String) return X_Rm_Name_Array is
Result : X_Rm_Name_Array (1 .. Names'Length + 2);
begin
X_Rm_String_To_Name_List (Names, Result);
return Result;
end Name_List;
function Class_List (Classes : X_String) return X_Rm_Class_Array is
Result : X_Rm_Class_Array (1 .. Classes'Length + 2);
begin
X_Rm_String_To_Class_List (Classes, Result);
return Result;
end Class_List;
----------------------------------------------------------------------
-------------------------
-- Major test sections --
-------------------------
procedure Create_Database (Db : in out X_Rm_Database) is
begin
Test_Io.Section ("Creating a sample database");
Add (Db, "*Anything: *Anything");
Add (Db, "*anything: *anything");
Add (Db, "A.Detailed.Class: A.Detailed.Class");
Add (Db, "a.detailed.name: a.detailed.name");
Add (Db, "*A*Class: *A*Class");
Add (Db, "*a*name: *a*name");
Add (Db, ".a*Class: .a*Class");
Test_Io.New_Line;
end Create_Database;
procedure Lookup_Entries (Db : X_Rm_Database;
Names : X_String;
Classes : X_String) is
List : constant X_Rm_Search_List :=
X_Rm_Get_Search_List (Db, Name_List (Names), Class_List (Classes));
procedure Get (Name : X_String; Class : X_String) is
Search_Rep : X_Rm_Representation;
Search_Val : X_Rm_Value;
Probe_Rep : X_Rm_Representation;
Probe_Val : X_Rm_Value;
begin
Test_Io.Putx ("(""" & Name & """, """ & Class & """) => ");
X_Rm_Get_Search_Resource
(List, X_Rm_String_To_Name (Name),
X_Rm_String_To_Class (Class), Search_Rep, Search_Val);
Test_Io.Put_Line (Rm_Test_Utilities.Image (Search_Val));
X_Rm_Get_Resource (Db, Names & '.' & Name,
Classes & '.' & Class, Probe_Rep, Probe_Val);
Check (Search_Val = Probe_Val and then Search_Rep = Probe_Rep,
"Expected: " & Rm_Test_Utilities.Image (Probe_Val));
end Get;
begin
Test_Io.Section (To_String ("Path (""" & Names &
""", """ & Classes & """)"));
Get ("name", "Junk");
Get ("junk", "Class");
Get ("name", "Class");
Get ("something", "Anything");
Get ("junk", "Junk");
Test_Io.New_Line;
end Lookup_Entries;
begin
Create_Database (Db);
-- Run the tests.
Lookup_Entries (Db, "", "");
Lookup_Entries (Db, "u.v.w", "x.A.z");
Lookup_Entries (Db, "u.a.w", "x.y.z");
Lookup_Entries (Db, "a", "A");
Lookup_Entries (Db, "a.a", "A.A");
Lookup_Entries (Db, "a.detailed", "A.Detailed");
-- Try a few probes on an empty database.
Lookup_Entries (None_X_Rm_Database, "empty_db", "Empty_DB");
Free_X_Rm_Database (Db);
end Rm_070;
nblk1=7
nid=0
hdr6=e
[0x00] rec0=24 rec1=00 rec2=01 rec3=05e
[0x01] rec0=1e rec1=00 rec2=02 rec3=02a
[0x02] rec0=1d rec1=00 rec2=03 rec3=03a
[0x03] rec0=16 rec1=00 rec2=04 rec3=04e
[0x04] rec0=00 rec1=00 rec2=07 rec3=004
[0x05] rec0=19 rec1=00 rec2=05 rec3=032
[0x06] rec0=0f rec1=00 rec2=06 rec3=000
tail 0x21500a37681978d35d34f 0x42a00088462063203