⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cxa4034.a

📁 用于进行gcc测试
💻 A
字号:
-- CXA4034.A----                             Grant of Unlimited Rights----     The Ada Conformity Assessment Authority (ACAA) holds unlimited--     rights in the software and documentation contained herein. Unlimited--     rights are the same as those granted by the U.S. Government for older--     parts of the Ada Conformity Assessment Test Suite, and are defined--     in DFAR 252.227-7013(a)(19). By making this public release, the ACAA--     intends to confer upon all recipients unlimited rights equal to those--     held by the ACAA. These rights include rights to use, duplicate,--     release or disclose the released technical data and computer software--     in whole or in part, in any manner and for any purpose whatsoever, and--     to have or permit others to do so.----                                    DISCLAIMER----     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A--     PARTICULAR PURPOSE OF SAID MATERIAL.--*---- OBJECTIVE:--    Check that Ada.Strings.Bounded.Slice raises Index_Error if--    High > Length (Source) or Low > Length (Source) + 1.--    (Defect Report 8652/0049).----    Check that Ada.Strings.Wide_Bounded.Slice raises Index_Error if--    High > Length (Source) or Low > Length (Source) + 1.---- CHANGE HISTORY:--    12 FEB 2001   PHL   Initial version--    14 MAR 2001   RLB   Added Wide_Bounded subtest.----!with Ada.Exceptions;use Ada.Exceptions;with Ada.Strings.Bounded;with Ada.Strings.Wide_Bounded;use Ada.Strings;with Report;use Report;procedure CXA4034 is    package Bs is new Ada.Strings.Bounded.Generic_Bounded_Length (40);    package WBs is new Ada.Strings.Wide_Bounded.Generic_Bounded_Length (32);    Source : String (Ident_Int (1) .. Ident_Int (30));    Wide_Source : Wide_String (Ident_Int (1) .. Ident_Int (24));    X : Bs.Bounded_String;    WX : WBs.Bounded_Wide_String;begin    Test ("CXA4034",          "Check that Slice raises Index_Error if either Low or High is " &             "greater than the Length(Source) for Ada.Strings.Bounded and " &             "Ada.Strings.Wide_Bounded");    -- Fill Source with "ABC..."    for I in Source'Range loop        Source (I) := Ident_Char (Character'Val (I +                        Character'Pos ('A') - Source'First));    end loop;    -- and W with "ABC..."    for I in Wide_Source'Range loop        Wide_Source (I) := Ident_Wide_Char (Wide_Character'Val (I +                         Wide_Character'Pos ('A') - Wide_Source'First));    end loop;    X := Bs.To_Bounded_String (Source);    begin        declare            S : constant String :=               Bs.Slice (X, Low => Ident_Int (28), High => Ident_Int (41));        begin            Failed ("No exception raised by Slice - 1");            if S = Source then                Comment ("Don't optimize S");            end if;        end;    exception        when Index_Error =>            null; -- Expected exception.        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 1");    end;    begin        declare            S : constant String :=               Bs.Slice (X, Low => Ident_Int (8), High => Ident_Int (31));        begin            Failed ("No exception raised by Slice - 2");            if S = Source then                Comment ("Don't optimize S");            end if;        end;    exception        when Index_Error =>            null; -- Expected exception.        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 2");    end;    begin        declare            S : constant String :=               Bs.Slice (X, Low => Ident_Int (15), High => Ident_Int (30));        begin            if S /= Source(15..30) then                Failed ("Wrong result - 3");            end if;        end;    exception        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 3");    end;    begin        declare            S : constant String :=               Bs.Slice (X, Low => Ident_Int (42), High => Ident_Int (28));        begin            Failed ("No exception raised by Slice - 4");            if S = Source then                Comment ("Don't optimize S");            end if;        end;    exception        when Index_Error =>            null; -- Expected exception.        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 4");    end;    begin        declare            S : constant String :=               Bs.Slice (X, Low => Ident_Int (31), High => Ident_Int (28));        begin            if S /= "" then                Failed ("Wrong result - 5");            end if;        end;    exception        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 5");    end;    begin        declare            S : constant String :=               Bs.Slice (X, Low => Ident_Int (30), High => Ident_Int (30));        begin            if S /= Source(30..30) then                Failed ("Wrong result - 6");            end if;        end;    exception        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 6");    end;    WX := WBs.To_Bounded_Wide_String (Wide_Source);    begin        declare            W : constant Wide_String :=               WBs.Slice (WX, Low => Ident_Int (21), High => Ident_Int (33));        begin            Failed ("No exception raised by Slice - 7");            if W = Wide_Source then                Comment ("Don't optimize W");            end if;        end;    exception        when Index_Error =>            null; -- Expected exception.        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 7");    end;    begin        declare            W : constant Wide_String :=               WBs.Slice (WX, Low => Ident_Int (8), High => Ident_Int (25));        begin            Failed ("No exception raised by Slice - 8");            if W = Wide_Source then                Comment ("Don't optimize W");            end if;        end;    exception        when Index_Error =>            null; -- Expected exception.        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 8");    end;    begin        declare            W : constant Wide_String :=               WBs.Slice (WX, Low => Ident_Int (15), High => Ident_Int (24));        begin            if W /= Wide_Source(15..24) then                Failed ("Wrong result - 8");            end if;        end;    exception        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 9");    end;    begin        declare            W : constant Wide_String :=               WBs.Slice (WX, Low => Ident_Int (36), High => Ident_Int (20));        begin            Failed ("No exception raised by Slice - 10");            if W = Wide_Source then                Comment ("Don't optimize W");            end if;        end;    exception        when Index_Error =>            null; -- Expected exception.        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 10");    end;    begin        declare            W : constant Wide_String :=               WBs.Slice (WX, Low => Ident_Int (25), High => Ident_Int (21));        begin            if W /= "" then                Failed ("Wrong result - 11");            end if;        end;    exception        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 11");    end;    begin        declare            W : constant Wide_String :=               WBs.Slice (WX, Low => Ident_Int (24), High => Ident_Int (24));        begin            if W /= Wide_Source(24..24) then                Failed ("Wrong result - 12");            end if;        end;    exception        when E: others =>            Failed ("Exception raised - " & Exception_Name (E) &                    " - " & Exception_Message (E) & " - 12");    end;    Result;end CXA4034;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -