Ahven / NEWS

2009-02-28 Ahven 1.6

Bugs fixed
	* Installation scripts for GNAT were fixed.
	  Bug report and patch from Reto Buerki.

2009-02-23 Ahven 1.5

	* Ahven is now hosted at New URLs are:
	  Project page:
	  Home page:

	* Janus/Ada build system was rewritten. See README for details.
	  Also, some minor changes were done to GNAT build scripts.

Bug fixed
	* API documentation was not generated for the Ahven.SList package.

2009-01-22 Ahven 1.4

	* Type Ahven.Framework.Test_Result and related code was removed.
	  Ahven.Framework.Execute now takes Listeners.Result_Listener'Class
	  directly instead of Test_Result object.

	* New abstract function Test_Count was added to the Test type.
	  The function returns the amount of test routines which will
	  be executed when the Run procedure is called.

	* Test Anything Protocol (TAP) support: There is now a new
	  Ahven.Tap_Runner package, which outputs test results in
	  TAP format (versions 1.2 and 1.3 are supported).

	* Get_Message and Get_Long_Message functions now return String
	  instead of Unbounded_String.

	* The GNAT project files for GNAT 3.15p were synchronised
	  with the GNAT GPL versions.

	* Janus/Ada build scripts are now in the 'janusada' directory
	  instead of 'contrib\janusada'.

	* New (generic) assertion procedure:
	    Assert_Equal (Expected, Actual, Message).
	  Suggestion and the source code from Pawel Plazienski.

	* New procedure for inserting stack-allocated tests into test suites:
	    Add_Static_Test (Suite, T).
	  Idea from Pawel Plazienski.

	* Internally, almost all Unbounded_Strings were converted into
	  VStrings. This limits the maximum length of test names and
	  failure messages to 160 characters. Constraint_Error is
	  raised for overlong test names and too long failure messages
	  are silently truncated into 160 characters.
	  This was done for better Janus/Ada 3.1.1d compatibility.

Bugs fixed
	* Text-based test runner results are now aligned in a better way.
	  Fix for bug #12220.

	* All lists were converted into singly linked lists. Lists were
	  made generic wherever possible.

	* Listeners.Output_Capture was combined into Listeners.Basic.

2008-08-13 Ahven 1.3

	* Example configuration for Cruisecontrol was added.

	* The GNAT project file for GNAT 3.15p was added. 

	* Fix for bug #12165 and make test suite to work
	  with Janus/Ada 3.1.x.

Bugs fixed
	* The API documentation is now generated also for
	  the Ahven.Compat and Ahven.XML_Runner packages.

	* The use of System.Address_To_Access_Conversions was removed.
	  This allows Ahven to be compiled with Janus/Ada.
	  At the same time, Ahven.Framework.Run (T : Test;...)
	  was changed back to Ahven.Framework.Run (T : in out Test;...).
	  Sorry for the inconvenience.

	* Non-standard pragmas were removed. The code should compile
	  now on multiple Ada compilers without warnings about
	  unrecognised pragmas.

	* Variable "OS" in Makefile and GNAT project files was renamed
	  to "OS_Version".

	* New tests:

	* Removed tests: List_Tests.*.

	* Code cleanups:
	  + Duplicate code from Text_Runner.Run and XML_Runner.Run
	    moved into Runner.Run_Suite.
	  + Duplicate code from various Framework.Run procedures was
	    moved into Framework.Run_Internal.

	* Ahven.Doubly_Linked_List was removed. This is related
	  to bug #12165.

2008-05-12 Ahven 1.2

	* New XML_Runner which generates JUnit compatible XML test results.
	  XML_Runner can be either run explicitly or via Text_Runner
	  using the '-x' parameter.

	* Unused access types Test_Access, Test_Case_Class_Access,
	  Test_Case_Access, Test_Suite_Class_Access, Result_Listener_Access,
	  Test_Command_Access, Test_Object_Command_Access,
	  Basic_Listener_Access, and Output_Capture_Listener_Access removed.

	* Ahven.Framework.Run (T : in out Test;...) is changed to
	  Ahven.Framework.Run (T : Test;...), because 'in out' mode
	  was not necessary.

	* New procedures/functions:
	    Ahven.Text_Runner.Run (Suite : Framework.Test_Suite'Class);
	    Ahven.Framework.Create_Suite return Test_Suite;
	  With these, the suite can be created on stack and one does not
	  need to play with access types.

Bugs fixed
	* Ahven can be now compiled with GNAT 3.15p.

	* The GNAT project file should work on Windows again.

	* XML_Runner introduced a need for some platform specific files.
	  Therefore, 'src' directory now contains subdirectories 'unix'
	  and 'windows'.

	* New tests: Result_Tests.Test_*

	* Next_* procedures for in the Results package were replaced
	  with proper iterators.

2008-01-30 Ahven 1.1

	* The Ahven.Framework and the test runners are able to optionally
	  run only the tests which match the given name.

	* The default Text_Runner is able to capture Ada.Text_IO output
	  from a test into a temporary file and show the output if
	  the test does not pass.
	  Option '-c' turns the capture feature on.

	* The default Text_Runner shows the exception message in addition
	  to the exception name when the test ends in error.
	  (Idea and original patch from Alexander Senier)

	* The default Text_Runner is now able to provide a short summary
	  instead of full test report.
	  Use option '-q' to get the test summary.

	* The GNAT project file is now called 'ahven.gpr' instead of
	  old 'ahven_lib.gpr'.

	* ALI files (*.ali) are now installed read-only, so GNAT
	  does not try to rebuild the library.
	  (Patch from Alexander Senier)

	* Function Ahven.Framework.Name is renamed
	  to Ahven.Framework.Get_Name.

	* Shared library produced by GNAT now includes the version number.

	* New listener: Output_Capture_Listener, which will
	  forward Ada.Text_IO output into a temporary file.

	* Type Ahven.Results.Result_Place is renamed to

	* Ahven.Double_Linked_List is renamed to Ahven.Doubly_Linked_List,
	  because other Ada linked list implementations also use
	  similar naming scheme.

	* AdaControl is used to enforce some parts of the coding style.
	  This caused some API changes, but in most cases the changes
	  are invisible.

2007-10-24 Ahven 1.0
Initial release.

Ahven is a simple unit test library for Ada 95.
It is modeled after JUnit and some ideas are
taken from AUnit. Ahven 1.0 is distributed under
ISC license.

* Test, Test_Case, and Test_Suite classes (tagged types)
* Assert and Fail procedures for triggering assertion failures
* Text-based test runner

Tero Koskinen <>