with GNATCOLL.Projects; use GNATCOLL.Projects;
with GNATCOLL.VFS; use GNATCOLL.VFS;
with Ada.Strings.Fixed; use Ada.Strings.Fixed;
with GNATCOLL.Projects.Aux;
with Ada.Containers.Indefinite_Doubly_Linked_Lists;
with Test_Assert;
function Test return Integer is
PT : Project_Tree;
Env : Project_Environment_Access;
package String_Lists is new
Ada.Containers.Indefinite_Doubly_Linked_Lists (String);
use String_Lists;
Lines : String_Lists.List;
Cur : String_Lists.Cursor;
procedure Errors (S : String);
procedure Errors (S : String) is
begin
Lines.Append (S);
end Errors;
Load_Failed : Boolean := False;
begin
Initialize (Env);
begin
GNATCOLL.Projects.Load
(PT,
Root_Project_Path => Create_From_Base ("p.gpr"),
Env => Env,
Recompute_View => False,
Errors => Errors'Unrestricted_Access);
exception
when Invalid_Project =>
Load_Failed := True;
end;
Test_Assert.Assert (Load_Failed, "check that load failed");
Cur := Lines.First;
Test_Assert.Assert
(Index
(Element (Cur),
"p.gpr:1:06: imported project file ""Common1.gpr""") /= 0,
"check first error line");
Next (Cur);
Test_Assert.Assert
(Index
(Element (Cur),
"p.gpr:3:10: unknown project ""common""") /= 0,
"check second error line");
Lines.Clear;
GNATCOLL.Projects.Aux.Delete_All_Temp_Files (PT.Root_Project);
PT.Unload;
Free (Env);
return Test_Assert.Report;
end Test;