2009-02-28 Ahven 1.6
* Installation scripts for GNAT were fixed.
Bug report and patch from Reto Buerki.
2009-02-23 Ahven 1.5
* Ahven is now hosted at sourceforge.net. New URLs are:
Project page: http://sourceforge.net/projects/ahven
Home page: http://ahven.sourceforge.net/
* Janus/Ada build system was rewritten. See README for details.
Also, some minor changes were done to GNAT build scripts.
* 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.
* 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.
* 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
* Variable "OS" in Makefile and GNAT project files was renamed
* 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,
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.
* 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'
* 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
* 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
* 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
2007-10-24 Ahven 1.0
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
* Test, Test_Case, and Test_Suite classes (tagged types)
* Assert and Fail procedures for triggering assertion failures
* Text-based test runner
Tero Koskinen <email@example.com>