with GNATCOLL.Projects; use GNATCOLL.Projects; with GNATCOLL.VFS; use GNATCOLL.VFS; with Test_Assert; use Test_Assert; with Ada.Directories; with Ada.Direct_IO; with Ada.Strings.Fixed; use Ada.Strings.Fixed; function Test return Integer is Tree : Project_Tree; Proj_File : constant String := "p.gpr"; Proj : Project_Type; Dummy : Boolean; function Read_File (File_Name : String) return String; -- Read a file and return its content as a String function Read_File (File_Name : String) return String is File_Size : constant Natural := Natural (Ada.Directories.Size (File_Name)); subtype File_String is String (1 .. File_Size); package File_String_IO is new Ada.Direct_IO (File_String); File : File_String_IO.File_Type; Contents : File_String; begin File_String_IO.Open (File, Mode => File_String_IO.In_File, Name => File_Name); File_String_IO.Read (File, Item => Contents); File_String_IO.Close (File); return String (Contents); end Read_File; begin Tree.Load (Create (Filesystem_String (Proj_File))); Proj := Tree.Root_Project; Proj.Rename_And_Move ("foobar_" & Proj.Name, Create (Filesystem_String (Ada.Directories.Containing_Directory (+Proj.Project_Path.Full_Name)))); Tree.Recompute_View; Dummy := Proj.Save; declare Content : constant String := Read_File ("foobar_" & Proj_File); begin -- Check that the separator are not removed Assert (Index (Content, """src/"" & ""subsrc/""") > 0); -- Check that the project name has been updated Assert (Index (Content, "Foobar_P") > 0); end; return Report; end Test;