DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦7ec3b4fcc⟧ TextFile

    Length: 24838 (0x6106)
    Types: TextFile
    Names: »V«

Derivation

└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00
    └─ ⟦0c20f784e⟧ »DATA« 
        └─⟦1abbe589f⟧ 
            └─⟦49e7f20b9⟧ 
                └─⟦this⟧ 

TextFile

with Swap_Raw_Data;  
with Swap_U_Char;

with Xlbmt_Network_Types;  
with Xlbt_Arithmetic;  
with Xlbt_String;

pragma Elaborate (Swap_Raw_Data);  
pragma Elaborate (Swap_U_Char);

package Cvt_Test_Utilities is
------------------------------------------------------------------------------
-- Cvt_Test_Utilities - test generics and support routines useful for
-- testing data conversions.
------------------------------------------------------------------------------

    package Raw_Data_Tests is

        --------------------------------------------------------------------
        -- The test generics in this section will perform a series of
        -- standard tests with a given pair of converter subprograms.  The
        -- test generics below require both To_Raw and From_Raw converters.
        -- If a particular conversion is not used by the protocol, the
        -- standard converter packages will not supply a converter
        -- subprogram.  Instantiate an appropriate Dummy_Converter
        -- to handle these cases.  The test generics below all accept and
        -- handle the Dummy_Converters.Unimplemented exception.
        --
        -- Logging information is produced via Test_Io calls.
        --------------------------------------------------------------------

        generic  
            type Original is private;  
            Original_Name : String;  
            with procedure To_Raw  
                              (Raw  : out Xlbmt_Network_Types.X_Raw_Data_Array;  
                               Orig :     Original);  
            with procedure From_Raw  
                              (Orig : out Original;  
                               Raw  :     Xlbmt_Network_Types.X_Raw_Data_Array);  
        procedure Tester (Image : String;  
                          Orig  : Original;  
                          Raw   : Xlbmt_Network_Types.X_Raw_Data_Array);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Raw          - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of private values.

        --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --

        generic  
            type Original       is private;  
            type Index          is (<>);  
            type Original_Array is array (Index range <>) of Original;  
            Original_Name : String;  
            with procedure To_Raw (Raw  : out  
                                       Xlbmt_Network_Types.X_Raw_Data_Array;  
                                   Orig : Original_Array);  
            with procedure From_Raw  
                              (Orig : out Original_Array;  
                               Raw  :     Xlbmt_Network_Types.X_Raw_Data_Array);  
        procedure Tester_1d (Image : String;  
                             Orig  : Original_Array;  
                             Raw   : Xlbmt_Network_Types.X_Raw_Data_Array);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Raw          - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of array values.

        --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --

        generic  
            type Original       is private;  
            type Index1         is (<>);  
            type Index2         is (<>);  
            type Original_Array is array (Index1 range <>,  
                                          Index2 range <>) of Original;  
            Original_Name : String;  
            with procedure To_Raw (Raw  : out  
                                       Xlbmt_Network_Types.X_Raw_Data_Array;  
                                   Orig : Original_Array);  
            with procedure From_Raw  
                              (Orig : out Original_Array;  
                               Raw  :     Xlbmt_Network_Types.X_Raw_Data_Array);  
        procedure Tester_2d (Image : String;  
                             Orig  : Original_Array;  
                             Raw   : Xlbmt_Network_Types.X_Raw_Data_Array);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Raw          - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of 2d array values.

    end Raw_Data_Tests;

    ----------------------------------------------------------------------

    package U_Char_Tests is

        --------------------------------------------------------------------
        -- The test generics in this section will perform a series of
        -- standard tests with a given pair of converter subprograms.  The
        -- test generics below require both To_Uca and From_Uca converters.
        -- If a particular conversion is not used by the protocol, the
        -- standard converter packages will not supply a converter
        -- subprogram.  Instantiate an appropriate Dummy_Converter
        -- to handle these cases.  The test generics below all accept and
        -- handle the Dummy_Converters.Unimplemented exception.
        --
        -- Logging information is produced via Test_Io calls.
        --------------------------------------------------------------------

        generic  
            type Original is private;  
            Original_Name : String;  
            with procedure To_Uca   (Uca  : out Xlbt_Arithmetic.U_Char_Array;  
                                     Orig :     Original);  
            with procedure From_Uca (Orig : out Original;  
                                     Uca  :     Xlbt_Arithmetic.U_Char_Array);  
        procedure Tester (Image : String;  
                          Orig  : Original;  
                          Uca   : Xlbt_Arithmetic.U_Char_Array);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Uca          - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of private values.

        --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --

        generic  
            type Original       is private;  
            type Index          is (<>);  
            type Original_Array is array (Index range <>) of Original;  
            Original_Name : String;  
            with procedure To_Uca   (Uca  : out Xlbt_Arithmetic.U_Char_Array;  
                                     Orig :     Original_Array);  
            with procedure From_Uca (Orig : out Original_Array;  
                                     Uca  :     Xlbt_Arithmetic.U_Char_Array);  
        procedure Tester_1d (Image : String;  
                             Orig  : Original_Array;  
                             Uca   : Xlbt_Arithmetic.U_Char_Array);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Uca          - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of array values.

        --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --

        generic  
            type Original       is private;  
            type Index1         is (<>);  
            type Index2         is (<>);  
            type Original_Array is array (Index1 range <>,  
                                          Index2 range <>) of Original;  
            Original_Name : String;  
            with procedure To_Uca   (Uca  : out Xlbt_Arithmetic.U_Char_Array;  
                                     Orig :     Original_Array);  
            with procedure From_Uca (Orig : out Original_Array;  
                                     Uca  :     Xlbt_Arithmetic.U_Char_Array);  
        procedure Tester_2d (Image : String;  
                             Orig  : Original_Array;  
                             Uca   : Xlbt_Arithmetic.U_Char_Array);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Uca          - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of 2d array values.

    end U_Char_Tests;

    ----------------------------------------------------------------------

    package X_String_Tests is

        --------------------------------------------------------------------
        -- The test generics in this section will perform a series of
        -- standard tests with a given pair of converter subprograms.  The
        -- test generics below require both To_Str8 and From_Str8 converters.
        -- If a particular conversion is not used by the protocol, the
        -- standard converter packages will not supply a converter
        -- subprogram.  Instantiate an appropriate Dummy_Converter
        -- to handle these cases.  The test generics below all accept and
        -- handle the Dummy_Converters.Unimplemented exception.
        --
        -- Logging information is produced via Test_Io calls.
        --------------------------------------------------------------------

        generic  
            type Original is private;  
            Original_Name : String;  
            with procedure To_Str8   (Str8 : out Xlbt_String.X_String;  
                                      Orig :     Original);  
            with procedure From_Str8 (Orig : out Original;  
                                      Str8 :     Xlbt_String.X_String);  
        procedure Tester (Image : String;  
                          Orig  : Original;  
                          Str8  : Xlbt_String.X_String);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Str8         - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of private values.

        --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --

        generic  
            type Original       is private;  
            type Index          is (<>);  
            type Original_Array is array (Index range <>) of Original;  
            Original_Name : String;  
            with procedure To_Str8   (Str8 : out Xlbt_String.X_String;  
                                      Orig :     Original_Array);  
            with procedure From_Str8 (Orig : out Original_Array;  
                                      Str8 :     Xlbt_String.X_String);  
        procedure Tester_1d (Image : String;  
                             Orig  : Original_Array;  
                             Str8  : Xlbt_String.X_String);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Str8         - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of array values.

        --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --

        generic  
            type Original       is private;  
            type Index1         is (<>);  
            type Index2         is (<>);  
            type Original_Array is array (Index1 range <>,  
                                          Index2 range <>) of Original;  
            Original_Name : String;  
            with procedure To_Str8   (Str8 : out Xlbt_String.X_String;  
                                      Orig :     Original_Array);  
            with procedure From_Str8 (Orig : out Original_Array;  
                                      Str8 :     Xlbt_String.X_String);  
        procedure Tester_2d (Image : String;  
                             Orig  : Original_Array;  
                             Str8  : Xlbt_String.X_String);
        --
        -- Image        - Specifies a text representation for Orig.
        -- Orig         - Specifies the original value to be converted.
        -- Str8         - Specifies the equivalent converted value.
        --
        -- Called to exercise various conversions of 2d array values.

    end X_String_Tests;

    ----------------------------------------------------------------------

    package Raw_Data_Constants is

        ------------------------------------------------------------------
        -- This package contains common constants used to construct
        -- X_Raw_Data_Arrays corresponding to various converted values.
        ------------------------------------------------------------------

        subtype Bytes is Xlbmt_Network_Types.X_Raw_Data_Array;  
        function "&"  (L, R : Bytes) return Bytes  
            renames Xlbmt_Network_Types."&";  
        function Swab (Data : Bytes) return Bytes renames Swap_Raw_Data;

        -- Generic constants
        Minus_1 : constant := -1;

        -- Single byte constants
--/ if Raw_Is_Unsigned then
        Raw_80 : constant Xlbmt_Network_Types.X_Raw_Data := 128;  
        Raw_Ab : constant Xlbmt_Network_Types.X_Raw_Data := 171;  
        Raw_Ff : constant Xlbmt_Network_Types.X_Raw_Data := 255;
--/ else
--//    Raw_80 : constant X_Raw_Data := -128;
--//    Raw_Ab : constant X_Raw_Data := -85;
--//    Raw_Ff : constant X_Raw_Data := -1;
--/ end if;

        -- Two byte constants
        Swab_00_00 : constant Bytes := Swab ((0, 0));  
        Swab_00_01 : constant Bytes := Swab ((0, 1));  
        Swab_00_02 : constant Bytes := Swab ((0, 2));  
        Swab_00_03 : constant Bytes := Swab ((0, 3));  
        Swab_00_04 : constant Bytes := Swab ((0, 4));  
        Swab_00_05 : constant Bytes := Swab ((0, 5));  
        Swab_00_06 : constant Bytes := Swab ((0, 6));  
        Swab_00_07 : constant Bytes := Swab ((0, 7));  
        Swab_00_08 : constant Bytes := Swab ((0, 8));  
        Swab_00_09 : constant Bytes := Swab ((0, 9));  
        Swab_00_0a : constant Bytes := Swab ((0, 10));  
        Swab_00_0b : constant Bytes := Swab ((0, 11));  
        Swab_00_0c : constant Bytes := Swab ((0, 12));  
        Swab_00_0d : constant Bytes := Swab ((0, 13));  
        Swab_00_0e : constant Bytes := Swab ((0, 14));  
        Swab_00_0f : constant Bytes := Swab ((0, 15));  
        Swab_00_10 : constant Bytes := Swab ((0, 16));  
        Swab_00_12 : constant Bytes := Swab ((0, 18));  
        Swab_01_00 : constant Bytes := Swab ((1, 0));  
        Swab_01_02 : constant Bytes := Swab ((1, 2));  
        Swab_01_23 : constant Bytes := Swab ((16#01#, 16#23#));  
        Swab_03_04 : constant Bytes := Swab ((3, 4));  
        Swab_05_06 : constant Bytes := Swab ((5, 6));  
        Swab_45_67 : constant Bytes := Swab ((16#45#, 16#67#));  
        Swab_7f_Ff : constant Bytes := Swab ((16#7F#, Raw_Ff));  
        Swab_80_00 : constant Bytes := Swab ((Raw_80, 0));  
        Swab_89_Ab : constant Bytes := Swab ((16#89#, Raw_Ab));  
        Swab_Ff_Ff : constant Bytes := Swab ((Raw_Ff, Raw_Ff));

        -- Four byte constants
        Swab_00_00_00_00 : constant Bytes := Swab ((0, 0, 0, 0));  
        Swab_00_00_00_01 : constant Bytes := Swab ((0, 0, 0, 1));  
        Swab_00_00_00_02 : constant Bytes := Swab ((0, 0, 0, 2));  
        Swab_00_00_00_03 : constant Bytes := Swab ((0, 0, 0, 3));  
        Swab_00_00_00_04 : constant Bytes := Swab ((0, 0, 0, 4));  
        Swab_00_00_00_05 : constant Bytes := Swab ((0, 0, 0, 5));  
        Swab_00_00_00_06 : constant Bytes := Swab ((0, 0, 0, 6));  
        Swab_00_00_00_07 : constant Bytes := Swab ((0, 0, 0, 7));  
        Swab_00_00_00_08 : constant Bytes := Swab ((0, 0, 0, 8));  
        Swab_00_00_00_09 : constant Bytes := Swab ((0, 0, 0, 9));  
        Swab_00_00_00_0a : constant Bytes := Swab ((0, 0, 0, 10));  
        Swab_00_00_00_0b : constant Bytes := Swab ((0, 0, 0, 11));  
        Swab_00_00_00_0c : constant Bytes := Swab ((0, 0, 0, 12));  
        Swab_00_00_00_0d : constant Bytes := Swab ((0, 0, 0, 13));  
        Swab_00_00_00_0e : constant Bytes := Swab ((0, 0, 0, 14));  
        Swab_00_00_00_0f : constant Bytes := Swab ((0, 0, 0, 15));  
        Swab_00_00_00_10 : constant Bytes := Swab ((0, 0, 0, 16));  
        Swab_00_00_00_11 : constant Bytes := Swab ((0, 0, 0, 17));  
        Swab_01_23_45_67 : constant Bytes :=  
           Swab ((16#01#, 16#23#, 16#45#, 16#67#));  
        Swab_7f_Ff_Ff_Ff : constant Bytes :=  
           Swab ((16#7F#, Raw_Ff, Raw_Ff, Raw_Ff));  
        Swab_80_00_00_00 : constant Bytes := Swab ((Raw_80, 0, 0, 0));  
        Swab_Ff_Ff_Ff_Ff : constant Bytes :=  
           Swab ((Raw_Ff, Raw_Ff, Raw_Ff, Raw_Ff));

    end Raw_Data_Constants;

    ----------------------------------------------------------------------

    package U_Char_Constants is

        ------------------------------------------------------------------
        -- This package contains common constants used to construct
        -- U_Char_Arrays corresponding to various converted values.
        ------------------------------------------------------------------

        subtype Bytes is Xlbt_Arithmetic.U_Char_Array;  
        function "&"  (L, R : Bytes) return Bytes renames Xlbt_Arithmetic."&";  
        function Swab (Data : Bytes) return Bytes renames Swap_U_Char;

        -- Generic constants
        Minus_1 : constant := -1;

        -- Single byte constants
        Uca_80 : constant Xlbt_Arithmetic.U_Char := 128;  
        Uca_Ab : constant Xlbt_Arithmetic.U_Char := 171;  
        Uca_Ff : constant Xlbt_Arithmetic.U_Char := 255;

        -- Two byte constants
        Swab_00_00 : constant Bytes := Swab ((0, 0));  
        Swab_00_01 : constant Bytes := Swab ((0, 1));  
        Swab_00_02 : constant Bytes := Swab ((0, 2));  
        Swab_00_03 : constant Bytes := Swab ((0, 3));  
        Swab_00_04 : constant Bytes := Swab ((0, 4));  
        Swab_00_05 : constant Bytes := Swab ((0, 5));  
        Swab_00_06 : constant Bytes := Swab ((0, 6));  
        Swab_00_07 : constant Bytes := Swab ((0, 7));  
        Swab_00_08 : constant Bytes := Swab ((0, 8));  
        Swab_00_09 : constant Bytes := Swab ((0, 9));  
        Swab_00_0a : constant Bytes := Swab ((0, 10));  
        Swab_00_0b : constant Bytes := Swab ((0, 11));  
        Swab_00_0c : constant Bytes := Swab ((0, 12));  
        Swab_00_0d : constant Bytes := Swab ((0, 13));  
        Swab_00_0e : constant Bytes := Swab ((0, 14));  
        Swab_00_0f : constant Bytes := Swab ((0, 15));  
        Swab_00_10 : constant Bytes := Swab ((0, 16));  
        Swab_00_12 : constant Bytes := Swab ((0, 18));  
        Swab_01_00 : constant Bytes := Swab ((1, 0));  
        Swab_01_02 : constant Bytes := Swab ((1, 2));  
        Swab_01_23 : constant Bytes := Swab ((16#01#, 16#23#));  
        Swab_03_04 : constant Bytes := Swab ((3, 4));  
        Swab_05_06 : constant Bytes := Swab ((5, 6));  
        Swab_45_67 : constant Bytes := Swab ((16#45#, 16#67#));  
        Swab_7f_Ff : constant Bytes := Swab ((16#7F#, Uca_Ff));  
        Swab_80_00 : constant Bytes := Swab ((Uca_80, 0));  
        Swab_89_Ab : constant Bytes := Swab ((16#89#, Uca_Ab));  
        Swab_Ff_Ff : constant Bytes := Swab ((Uca_Ff, Uca_Ff));

        -- Four byte constants
        Swab_00_00_00_00 : constant Bytes := Swab ((0, 0, 0, 0));  
        Swab_00_00_00_01 : constant Bytes := Swab ((0, 0, 0, 1));  
        Swab_00_00_00_02 : constant Bytes := Swab ((0, 0, 0, 2));  
        Swab_00_00_00_03 : constant Bytes := Swab ((0, 0, 0, 3));  
        Swab_00_00_00_04 : constant Bytes := Swab ((0, 0, 0, 4));  
        Swab_00_00_00_05 : constant Bytes := Swab ((0, 0, 0, 5));  
        Swab_00_00_00_06 : constant Bytes := Swab ((0, 0, 0, 6));  
        Swab_00_00_00_07 : constant Bytes := Swab ((0, 0, 0, 7));  
        Swab_00_00_00_08 : constant Bytes := Swab ((0, 0, 0, 8));  
        Swab_00_00_00_09 : constant Bytes := Swab ((0, 0, 0, 9));  
        Swab_00_00_00_0a : constant Bytes := Swab ((0, 0, 0, 10));  
        Swab_00_00_00_0b : constant Bytes := Swab ((0, 0, 0, 11));  
        Swab_00_00_00_0c : constant Bytes := Swab ((0, 0, 0, 12));  
        Swab_00_00_00_0d : constant Bytes := Swab ((0, 0, 0, 13));  
        Swab_00_00_00_0e : constant Bytes := Swab ((0, 0, 0, 14));  
        Swab_00_00_00_0f : constant Bytes := Swab ((0, 0, 0, 15));  
        Swab_00_00_00_10 : constant Bytes := Swab ((0, 0, 0, 16));  
        Swab_00_00_00_11 : constant Bytes := Swab ((0, 0, 0, 17));  
        Swab_01_23_45_67 : constant Bytes :=  
           Swab ((16#01#, 16#23#, 16#45#, 16#67#));  
        Swab_7f_Ff_Ff_Ff : constant Bytes :=  
           Swab ((16#7F#, Uca_Ff, Uca_Ff, Uca_Ff));  
        Swab_80_00_00_00 : constant Bytes := Swab ((Uca_80, 0, 0, 0));  
        Swab_Ff_Ff_Ff_Ff : constant Bytes :=  
           Swab ((Uca_Ff, Uca_Ff, Uca_Ff, Uca_Ff));

    end U_Char_Constants;

    ----------------------------------------------------------------------

    package Dummy_Converters is

        ------------------------------------------------------------------
        -- This package is a dummy version of Xlbmp_Generic_Converters
        -- and Xlbp_U_Char_Generics.  It is used by tests that want to
        -- use converters which aren't normally required by the
        -- protocol, and thus aren't provided by any of the standard
        -- converter packages.  The conversion generics here perform no
        -- actual work - they just raise Unimplemented so that the test
        -- generics will know to ignore this test.
        ------------------------------------------------------------------

        Unimplemented : exception;
        --
        -- Raised by these conversion routines to signify inapplicable
        -- tests.

        ------------------------------------------------------------------

        generic  
            type Original  is (<>);  
            type Converted is private;  
        procedure Convert_From_Discrete (Conv : out Converted;  
                                         Orig :     Original);  
        generic  
            type Original  is private;  
            type Converted is private;  
        procedure Convert_From_Private (Conv : out Converted;  
                                        Orig :     Original);  
        generic  
            type Original       is private;  
            type Index          is (<>);  
            type Original_Array is array (Index range <>) of Original;  
            type Converted      is private;  
        procedure Convert_From_Array (Conv : out Converted;  
                                      Orig :     Original_Array);  
        generic  
            type Original       is private;  
            type Index1         is (<>);  
            type Index2         is (<>);  
            type Original_Array is array (Index1 range <>,  
                                          Index2 range <>) of Original;  
            type Converted      is private;  
        procedure Convert_From_2d_Array (Conv : out Converted;  
                                         Orig :     Original_Array);

        ------------------------------------------------------------------

        generic  
            type Original  is (<>);  
            type Converted is private;  
        procedure Convert_To_Discrete (Orig : out Original;  
                                       Conv :     Converted);  
        generic  
            type Original  is private;  
            type Converted is private;  
        procedure Convert_To_Private (Orig : out Original;  
                                      Conv :     Converted);  
        generic  
            type Original       is private;  
            type Index          is (<>);  
            type Original_Array is array (Index range <>) of Original;  
            type Converted      is private;  
        procedure Convert_To_Array (Orig : out Original_Array;  
                                    Conv :     Converted);  
        generic  
            type Original       is private;  
            type Index1         is (<>);  
            type Index2         is (<>);  
            type Original_Array is array (Index1 range <>,  
                                          Index2 range <>) of Original;  
            type Converted      is private;  
        procedure Convert_To_2d_Array (Orig : out Original_Array;  
                                       Conv :     Converted);

    end Dummy_Converters;

    ----------------------------------------------------------------------

end Cvt_Test_Utilities;