with Ada.Strings.Unbounded; with Ada.Text_IO; with GNATCOLL.OS.Process; with GPR2.Containers; with GPR2.Project.Registry.Attribute; with GPR2.Project.Registry.Exchange; with GPR2.Project.Registry.Pack; with Test; procedure Import is Exported_Content : Ada.Strings.Unbounded.Unbounded_String; Imported_Content : Ada.Strings.Unbounded.Unbounded_String; Empty_List : GPR2.Containers.Package_Id_List; procedure Imported (Item : String) is begin Ada.Strings.Unbounded.Append (Imported_Content, Item); end Imported; use type Ada.Strings.Unbounded.Unbounded_String; begin Ada.Text_IO.Put_Line ("********************"); Ada.Text_IO.Put_Line ("* Exported_Registy *"); Ada.Text_IO.Put_Line ("********************"); Exported_Content := Test.Get_Exported_Registry_From_Tool ("export"); GPR2.Project.Registry.Exchange.Import (Definitions => Exported_Content, Included => Empty_List, Excluded => GPR2.Project.Registry.Pack.Predefined_Packages); GPR2.Project.Registry.Exchange.Export (Included => GPR2.Project.Registry.Pack.All_Packages, Excluded => GPR2.Project.Registry.Pack.Predefined_Packages, Format => GPR2.Project.Registry.Exchange.K_JSON, Output => Imported'Access); if Exported_Content /= Imported_Content then Ada.Text_IO.Put_Line ("Import/Export failure !!!"); end if; Ada.Text_IO.Put_Line (Ada.Strings.Unbounded.To_String (Exported_Content)); Exported_Content := Test.Get_Exported_Registry_From_Tool ("check_prove"); Ada.Text_IO.Put_Line (Ada.Strings.Unbounded.To_String (Exported_Content)); GPR2.Project.Registry.Exchange.Import (Definitions => Exported_Content, Included => Empty_List, Excluded => GPR2.Project.Registry.Pack.Predefined_Packages); Ada.Text_IO.Put_Line ("********************"); Ada.Text_IO.Put_Line ("* Imported Registy *"); Ada.Text_IO.Put_Line ("********************"); GPR2.Project.Registry.Exchange.Export (Included => GPR2.Project.Registry.Pack.All_Packages, Excluded => GPR2.Project.Registry.Pack.Predefined_Packages, Format => GPR2.Project.Registry.Exchange.K_JSON); declare Args_Vector : GNATCOLL.OS.Process.Argument_List; Output : Ada.Strings.Unbounded.Unbounded_String; Dummy : Integer; Definitions : GPR2.Project.Registry.Attribute.Def; package PRA renames GPR2.Project.Registry.Attribute; use type GPR2.Optional_Attribute_Id; begin Args_Vector.Append (Test.Locate_Exec_On_Path("export")); Output := GNATCOLL.OS.Process.Run (Args => Args_Vector, Stdin => GNATCOLL.OS.Process.FS.Null_FD, Stderr => GNATCOLL.OS.Process.FS.To_Stdout, Status => Dummy); GPR2.Project.Registry.Exchange.Import (Definitions => Output, Included => GPR2.Containers.Package_Id_Type_List.Empty_Set, Excluded => GPR2.Containers.Package_Id_Type_List.Empty_Set); Ada.Text_IO.Put_Line ("Test Inherit_From_Extended_Type support"); for Inherited_Mode in PRA.Inherit_From_Extended_Type loop Definitions := PRA.Get ((GPR2.Project_Level_Scope, +GPR2.Optional_Name_Type ("Attribute_" & Inherited_Mode'Img))); Ada.Text_IO.Put_Line (" expected:" & Inherited_Mode'Img & " actual:" & Definitions.Inherit_From_Extended'Img); end loop; end; end Import;