Write unitest++ based unit tests for the cal3d software. unitest++ : http://download.gna.org/underware/sources/unittest++[login to view URL] cal3d : [login to view URL] Cover 100% of the code using the API defined by the following cal3d header files : animation.h, animcallback.h, bone.h, coreanimation.h, corebone.h, corekeyframe.h, coreskeleton.h, skeleton.h, coretrack.h Write a script that finds all occurence of the API functions and check that the output of gcov catches all calls to the function. The output of the script will be used to demonstrate that the deliverable is complete, unless gcov shows 100% coverage for a given file. The files implementing the API are not in the scope of this task.
## Deliverables
A1) Complete and precise implementation of the description of the bid request.
A2) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
A3) Deliverables must be in ready-to-run condition, as follows: a software installation package that will install the software in ready-to-run condition for Debian GNU/Linux.
A4) The software package source form must be suitable for the debuild command, be lintian clean and install properly with pbuilder.
A5) The software installation package must be provided with the first status report and updated for each status report. A6) Buyer will receive exclusive and complete copyrights to all work purchased. Third party software may be included as long as they are published under a license compatible with the GNU GPL.
A7) Software must obey the GNU coding standards as found at [login to view URL]
A8) Software must be platform and os independent.
A9) Software must be commited to the CVS repository defined in the bid request description.
A10) All commits to the CVS must be tested to pass the distcheck target (make distcheck) as defined by autotools ([login to view URL])
A11) The reason for each change (not the change itself) must be explained in the ChangeLog file at the root the package tree. R1) A set of unit tests (using [login to view URL] or python or gcov for c, c++) covering 100% of the code of the software as defined in the bid request description.
R2) make distcheck must run the unit tests, report the total percentage of coverage and list all the lines of code (either python or c or c++) that are not covered.
R3) Implement a verbose mode for running the tests so identifying which unit test fails and why is straightforward.
V1) run valgrind in make distcheck for every test involving C or C++ code with the --leak-check=full option
V2) Patches and files commited to the CVS repository defined in the bid request description so that valgrind is silent
V3) suppression files can be added for valgrind detected leaks or violations outside the scope of the software package
V4) each suppression added for leaks or violations in the scope of the software package must be explained in detail in the comment part
## Platform
GNU/Linux