1--  { dg-do run }
2
3with Ada.Text_IO;    use Ada.Text_IO;
4with Encode_String1_Pkg;
5with GNAT.Encode_String;
6with System.WCh_Con; use System.WCh_Con;
7
8procedure Encode_String1 is
9   High_WS  : constant      Wide_String (1000 .. 1009) := (others => '1');
10   High_WWS : constant Wide_Wide_String (1000 .. 1009) := (others => '2');
11   Low_WS   : constant      Wide_String (3 .. 12) := (others => '3');
12   Low_WWS  : constant Wide_Wide_String (3 .. 12) := (others => '4');
13
14   procedure Test_Method (Method : WC_Encoding_Method);
15   --  Test Wide_String and Wide_Wide_String encodings using method Method to
16   --  encode them.
17
18   -----------------
19   -- Test_Method --
20   -----------------
21
22   procedure Test_Method (Method : WC_Encoding_Method) is
23      package Encoder is new GNAT.Encode_String (Method);
24
25      procedure WS_Tester is new Encode_String1_Pkg
26        (C      => Wide_Character,
27         S      => Wide_String,
28         Encode => Encoder.Encode_Wide_String);
29
30      procedure WWS_Tester is new Encode_String1_Pkg
31        (C      => Wide_Wide_Character,
32         S      => Wide_Wide_String,
33         Encode => Encoder.Encode_Wide_Wide_String);
34   begin
35      WS_Tester (High_WS);
36      WS_Tester (Low_WS);
37
38      WWS_Tester (High_WWS);
39      WWS_Tester (Low_WWS);
40   end Test_Method;
41
42--  Start of processing for Main
43
44begin
45   for Method in WC_Encoding_Method'Range loop
46      Test_Method (Method);
47   end loop;
48end;
49