# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= ahven VERSION= 2.8 REVISION= 4 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.8.tar.gz:main DF_INDEX= 1 SPKGS[standard]= complete primary dev docs OPTIONS_AVAILABLE= TRACE OPTIONS_STANDARD= TRACE OPT_ON[all]= TRACE BUILD_DEPENDS= python-sphinxcontrib-adadomain:single:python_default USES= gprbuild gmake ada:primary LICENSE= ISCL:primary LICENSE_FILE= ISCL:{{WRKSRC}}/LICENSE.txt LICENSE_SCHEME= solo BUILD_WRKSRC= {{WRKSRC}}/gnat_linux MAKE_ENV= OS_VERSION=unix SOVERSION= 28.0.0 PLIST_SUB= JQUERY=3.6.0 UNDERSCORE=1.13.1 [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 /' \ ${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] 6ead94fbd1b95454e959cc2a343acfb2f733bcbf10d9a286214d1dec1b9e8e0c 111799 ahven-2.8.tar.gz [FILE:28:manifests/plist.primary] lib/libahven.so.%%SOMAJOR%% [FILE:745:manifests/plist.dev] 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 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 share/gpr/ahven.gpr [FILE:642: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 language_data.js minus.png nature.css plus.png pygments.css searchtools.js sphinx_highlight.js [FILE:472:patches/patch-gnat__linux_build__ahven.gpr] --- gnat_linux/build_ahven.gpr.orig 2020-10-16 21:05:38 UTC +++ gnat_linux/build_ahven.gpr @@ -69,7 +69,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;