Ahven is a simple unit test library (or a framework) for Ada 95 programming language. The project is loosely modeled after JUnit and some ideas are taken from AUnit.
Ahven is free software distributed under permissive ISC license and should work with any Ada 95 compiler.
Product's homepage
Here are some key features of "Ahven":
· Simple API
· Small size (Ahven 1.2 has 2K SLOC; 636 statements; 1074 declarations)
· JUnit-compatible test results in XML format
· Strict coding style (enforced by AdaControl)
· Plain Ada 95 code, no Ada 2005 features used
· Portable across different compilers and operating systems
· Permissive Open Source license
What's New in This Release: [ read full changelog ]
Changes:
· The dynamic library support with GNAT was removed since it did not work automatically in a trouble-free way on Debian, Fedora, and Windows.
· Ada.Calendar dependency was removed from Ahven.Framework. Equivalent functionality is now implemented in the test runners.
· Support for TAP 1.3 was dropped. TAP 1.2 is supported normally.
· Janus/Ada 3.1.1d support was dropped. Ahven now requires Janus/Ada 3.1.2beta or newer.
· There is now ahven.spec file in contrib/fedora to make packaging and installing Ahven easier on Fedora.
Bugs fixed:
· If user placed a dynamically allocated Test_Case into a statically allocated Test_Suite the finalization procedure tried to release the same memory twice. This is now fixed by implementing Adjust for the Test_Suite type. (Bug bitbucket#2)
· Many Some_Type'(initial values) expressions were changed into more simpler (initial values) form. This was done to avoid Janus/Ada bug no 73.
Internal:
· Code cleanup: style fixes, removal of compiler warnings and comment clarifications.
· Remove_All procedure from Ahven.SList package was renamed to Clear. The new name is more consistent with Ada.Containers naming style.
· Ahven.VStrings package now depends on Ada.Strings.Fixed.
· Ahven.Framework.Indefinite_Test_List has no longer procedures or functions for Cursors. Same functionality can be now achieved using generic For_Each procedure.