------------------------------------------------------------------------------ -- -- -- GNATTEST COMPONENTS -- -- -- -- G N A T T E S T . D R I V E R -- -- -- -- B o d y -- -- -- -- Copyright (C) 2011-2017, AdaCore -- -- -- -- GNATTEST is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 2, or (at your option) any later -- -- version. GNATTEST is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -- -- Public License for more details. You should have received a copy of the -- -- GNU General Public License distributed with GNAT; see file COPYING. If -- -- not, write to the Free Software Foundation, 51 Franklin Street, Fifth -- -- Floor, Boston, MA 02110-1301, USA., -- -- -- -- GNATTEST is maintained by AdaCore (http://www.adacore.com). -- -- -- ------------------------------------------------------------------------------ with Ada.Command_Line; with Asis.Exceptions; with GNATtest.Aggregator; with GNATtest.Environment; with GNATtest.Skeleton.Generator; with GNATtest.Harness.Generator; with GNATtest.Common; with GNATtest.Options; with GNATtest.Mapping; procedure GNATtest.Driver is begin GNATtest.Environment.Initialize; case GNATtest.Options.GNATtest_Mode is when GNATtest.Options.Generation => if not GNATtest.Options.Harness_Only then GNATtest.Skeleton.Generator.Process_Sources; end if; GNATtest.Harness.Generator.Process_Sources; GNATtest.Mapping.Generate_Mapping_File; when GNATtest.Options.Aggregation => GNATtest.Aggregator.Process_Drivers_List; end case; GNATtest.Environment.Clean_Up; if GNATtest.Options.Strict_Execution and then GNATtest.Environment.Source_Compilation_Failed then Ada.Command_Line.Set_Exit_Status (Ada.Command_Line.Failure); else Ada.Command_Line.Set_Exit_Status (Ada.Command_Line.Success); end if; exception when GNATtest.Common.Fatal_Error => -- Just a trap; all the diagnostic messages should already -- have been generated. Ada.Command_Line.Set_Exit_Status (Ada.Command_Line.Failure); GNATtest.Environment.Clean_Up; when Ex : Asis.Exceptions.ASIS_Inappropriate_Context | Asis.Exceptions.ASIS_Inappropriate_Container | Asis.Exceptions.ASIS_Inappropriate_Compilation_Unit | Asis.Exceptions.ASIS_Inappropriate_Element | Asis.Exceptions.ASIS_Inappropriate_Line | Asis.Exceptions.ASIS_Inappropriate_Line_Number | Asis.Exceptions.ASIS_Failed => Ada.Command_Line.Set_Exit_Status (Ada.Command_Line.Failure); GNATtest.Common.Report_Unhandled_ASIS_Exception (Ex); GNATtest.Environment.Clean_Up; when Ex : others => Ada.Command_Line.Set_Exit_Status (Ada.Command_Line.Failure); GNATtest.Common.Report_Unhandled_Exception (Ex); GNATtest.Environment.Clean_Up; end GNATtest.Driver;