# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= ahven VERSION= 2.7 REVISION= 1 KEYWORDS= devel ada VARIANTS= standard SDESC[standard]= Ada unit test framework HOMEPAGE= http://ahven.stronglytyped.org/ CONTACT= John_Marino[draco@marino.st] DOWNLOAD_GROUPS= main SITES[main]= http://www.ahven-framework.com/releases/ DISTFILE[1]= ahven-2.7.tar.gz:main DF_INDEX= 1 SPKGS[standard]= complete primary docs OPTIONS_AVAILABLE= TRACE OPTIONS_STANDARD= TRACE OPT_ON[all]= TRACE BUILD_DEPENDS= python-sphinxcontrib-adadomain:single:py37 adacontrol:primary:standard USES= gprbuild gmake ada:primary LICENSE= ISCL:primary LICENSE_FILE= ISCL:{{WRKSRC}}/LICENSE.txt LICENSE_SCHEME= solo FPC_EQUIVALENT= devel/ahven BUILD_WRKSRC= {{WRKSRC}}/gnat_linux MAKE_ENV= OS_VERSION=unix [TRACE].DESCRIPTION= Use GNAT-specific symbolic tracing functionality [TRACE].EXTRA_PATCHES_ON= extra-src_ahven-framework.adb post-patch: ${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' \ -e '/preserve=timestamps/d' \ -e 's/RPf /RpP /' \ -e '/^gprdir/ s|{datarootdir}/gpr|{libdir}/gnat|' \ ${BUILD_WRKSRC}/comfignat.gpr.gp \ ${BUILD_WRKSRC}/comfignat.mk post-install: ${RM} -r ${STAGEDIR}${STD_DOCDIR}/html/_sources ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so [FILE:429:descriptions/desc.primary] Ahven is a simple unit test library and framework for the Ada programming lanugage. It is loosely modelled after JUnit and some ideas from AUnit. Features: Simple API Small size JUnit-compatible test results in XML format Strict coding style enforced by AdaControl This allows integration with tools like Jenkins and CruiseControl Limited to Ada95 language features Permissive open source license (ISC) [FILE:95:distinfo] c198a5cd33244ef4741cc762ef4a51f13a1eaa4c5a77030ed898625ee1e060a1 111825 ahven-2.7.tar.gz [FILE:762:manifests/plist.primary] include/ahven/ ahven-astrings.ads ahven-framework.adb ahven-framework.ads ahven-listeners-basic.ads ahven-listeners.ads ahven-long_astrings.ads ahven-name_list.ads ahven-parameters.ads ahven-results.ads ahven-runner.ads ahven-slist.adb ahven-slist.ads ahven-tap_runner.ads ahven-temporary_output.ads ahven-text_runner.ads ahven-xml_runner.ads ahven.adb ahven.ads lib/ libahven.so libahven.so.27 lib/ahven/ ahven-astrings.ali ahven-framework.ali ahven-listeners-basic.ali ahven-listeners.ali ahven-long_astrings.ali ahven-name_list.ali ahven-parameters.ali ahven-results.ali ahven-runner.ali ahven-slist.ali ahven-tap_runner.ali ahven-temporary_output.ali ahven-text_runner.ali ahven-xml_runner.ali ahven.ali lib/gnat/ahven.gpr [FILE:685:manifests/plist.docs] share/doc/ahven/html/ .buildinfo api-ahven-framework.html api-ahven-listeners-basic.html api-ahven-listeners.html api-ahven-parameters.html api-ahven-results.html api-ahven-runner.html api-ahven-slist.html api-ahven-tap_runner.html api-ahven-temporary_output.html api-ahven-text_runner.html api-ahven-xml_runner.html api-ahven.html api.html design.html genindex.html index.html manual.html objects.inv search.html searchindex.js share/doc/ahven/html/_static/ basic.css doctools.js documentation_options.js file.png jquery-3.2.1.js jquery.js language_data.js minus.png nature.css plus.png pygments.css searchtools.js underscore-1.3.1.js underscore.js [FILE:472:patches/patch-gnat__linux_build__ahven.gpr] --- gnat_linux/build_ahven.gpr.orig 2018-07-24 03:40:04 UTC +++ gnat_linux/build_ahven.gpr @@ -68,7 +68,6 @@ library project Build_Ahven is when "true" => for Default_Switches ("Ada") use Production_Switches & ("-gnatwe", - "-gnatyd3bmhex", "-gnat95"); end case; -- gnat style switches explained: [FILE:247:files/ahven.gpr] library project Ahven is for Library_Name use "ahven"; for Library_Kind use "static"; for Source_Dirs use ("../../include/ahven"); for Library_Dir use "../../lib/ahven"; for Externally_Built use "true"; end Ahven; [FILE:2526:files/extra-src_ahven-framework.adb] --- src/ahven-framework.adb.orig 2014-02-08 21:21:51.000000000 +0000 +++ src/ahven-framework.adb @@ -14,6 +14,8 @@ -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- +with GNAT.Traceback.Symbolic; +with GNAT.Regpat; with Ada.Strings; with Ada.Unchecked_Deallocation; with Ada.Exceptions; @@ -22,6 +24,24 @@ with Ahven.Long_AStrings; package body Ahven.Framework is use Ahven.AStrings; + -- Convert an exception into a traceback, but truncate it at the first + -- line matching "0x.* in ahven.framework" as this is unwanted trace. + function Filtered_Traceback (E : in Ada.Exceptions.Exception_Occurrence) + return String is + ftb : constant String := GNAT.Traceback.Symbolic.Symbolic_Traceback (E); + pat : constant String := "(0x[0-9a-f]* in ahven\.framework)"; + reg : constant GNAT.Regpat.Pattern_Matcher := GNAT.Regpat.Compile (pat); + result : GNAT.Regpat.Match_Array (0 .. 1); + use type GNAT.Regpat.Match_Location; + begin + GNAT.Regpat.Match (reg, ftb, result); + if result (0) = GNAT.Regpat.No_Match then + return ftb; + else + return ftb (1 .. result (1).First - 2); + end if; + end Filtered_Traceback; + -- A few local procedures, so we do not need to duplicate code. procedure Free_Test is new Ada.Unchecked_Deallocation (Object => Test'Class, @@ -346,19 +366,19 @@ package body Ahven.Framework is Set_Status (S => TEST_FAIL, Message => Ada.Exceptions.Exception_Message (E), - Long_Message => Ada.Exceptions.Exception_Information (E), + Long_Message => Filtered_Traceback (E), R => Result); when E : Test_Skipped_Error => Set_Status (S => TEST_SKIP, Message => Ada.Exceptions.Exception_Message (E), - Long_Message => Ada.Exceptions.Exception_Information (E), + Long_Message => Filtered_Traceback (E), R => Result); when E : others => Set_Status (S => TEST_ERROR, Message => Ada.Exceptions.Exception_Message (E), - Long_Message => Ada.Exceptions.Exception_Information (E), + Long_Message => Filtered_Traceback (E), R => Result); end; end Run_A_Command;