are_1.5.1_a029ed06/regtests/are-generator-go-tests.adb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
-----------------------------------------------------------------------
--  are-generator-go-tests -- Tests for Go generator
--  Copyright (C) 2021 Stephane Carrez
--  Written by Stephane Carrez (Stephane.Carrez@gmail.com)
--  SPDX-License-Identifier: Apache-2.0
-----------------------------------------------------------------------

with Ada.Directories;

with Util.Files;
with Util.Test_Caller;
package body Are.Generator.Go.Tests is

   Expect_Dir  : constant String := "regtests/expect/go/";

   function Tool return String;

   package Caller is new Util.Test_Caller (Test, "Are.Generator.Go");

   function Tool return String is
   begin
      return "bin/are" & Are.Testsuite.EXE;
   end Tool;

   procedure Add_Tests (Suite : in Util.Tests.Access_Test_Suite) is
   begin
      Caller.Add_Test (Suite, "Test Are.Generate_Go1",
                       Test_Generate_Go1'Access);
      Caller.Add_Test (Suite, "Test Are.Generate_Go2",
                       Test_Generate_Go2'Access);
      Caller.Add_Test (Suite, "Test Are.Generate_Go3",
                       Test_Generate_Go3'Access);
   end Add_Tests;

   procedure Test_Generate_Go1 (T : in out Test) is
      Dir    : constant String := Util.Tests.Get_Test_Path ("");
      Target : constant String := Util.Files.Compose (Dir, "resources1/resources1.go");
      Web    : constant String := "regtests/files/test-c-1/web";
      Result : Ada.Strings.Unbounded.Unbounded_String;
   begin
      --  Generate the resources1.go file
      T.Execute (Tool & " --lang=go -o " & Dir
                 & " --name-access --resource=Resources1 --fileset '**/*' "
                 & Web, Result);

      T.Assert (Ada.Directories.Exists (Target),
                "Resource file 'resources1/resources1.go' not generated");

      Are.Testsuite.Assert_Equal_Files
        (T       => T,
         Expect  => Util.Tests.Get_Path (Expect_Dir & "resources1.go"),
         Test    => Target,
         Message => "Invalid Go generation");
   end Test_Generate_Go1;

   procedure Test_Generate_Go2 (T : in out Test) is
      Dir    : constant String := Util.Tests.Get_Test_Path ("");
      Target : constant String := Util.Files.Compose (Dir, "resources2/resources2.go");
      Web    : constant String := "regtests/files/test-ada-2";
      Rule   : constant String := "regtests/files/test-ada-2/package.xml";
      Result : Ada.Strings.Unbounded.Unbounded_String;
   begin
      --  Generate the resources1.go file
      T.Execute (Tool & " --lang=go -o " & Dir & " --name-access --rule=" & Rule
                 & " " & Web, Result);

      T.Assert (Ada.Directories.Exists (Target),
                "Resource file 'resources2/resources2.go' not generated");

      Are.Testsuite.Assert_Equal_Files
        (T       => T,
         Expect  => Util.Tests.Get_Path (Expect_Dir & "resources2.go"),
         Test    => Target,
         Message => "Invalid Go generation");
   end Test_Generate_Go2;

   procedure Test_Generate_Go3 (T : in out Test) is
      Dir    : constant String := Util.Tests.Get_Test_Path ("");
      Target : constant String := Util.Files.Compose (Dir, "resource4/resource4.go");
      Web    : constant String := "regtests/files/test-ada-4";
      Rule   : constant String := "regtests/files/test-ada-4/package.xml";
      Result : Ada.Strings.Unbounded.Unbounded_String;
   begin
      --  Generate the resources1.go file
      T.Execute (Tool & " --lang=go -o " & Dir & " --name-access --rule=" & Rule
                 & " " & Web, Result);

      T.Assert (Ada.Directories.Exists (Target),
                "Resource file 'resource4/resource4.go' not generated");

      Are.Testsuite.Assert_Equal_Files
        (T       => T,
         Expect  => Util.Tests.Get_Path (Expect_Dir & "resource4.go"),
         Test    => Target,
         Message => "Invalid Go generation");
   end Test_Generate_Go3;

end Are.Generator.Go.Tests;