The header <report.h> defines several functions that are useful in test programs. These are based on similar functions in the Ada Validation suite (the ACVC Tests) in the package Report.
Briefly, a test program begins by calling the function test. The first parameter gives the name of the test, the second parameter gives a brief description of the test. A test ends with a call to result. This will print the result of the the test in a standard (and machine readable) format, and will typically report PASSED or FAILED.
Between the calls of test and result, are the tests. Any test that fails should call failed with a parameter giving the reason for the failure. Comments may be output using the function comment. Both failed and comment take a format string parameter optionally followed by a number of values to print, and are compatible with printf.
Example 13-1. Test Program
#include <report.h> int main () { int ans = 1 + 2; test ("t1", "Example test program"); if (ans != 3) failed ("error in arithmetic, got %d, expected 3", ans); result (); }
If the test passes, then the output will be as follows:
Example 13-2. Output from Test Program
,.,. t1 GTS Version 0.1 ---- t1 Example test program. ==== t1 PASSED ============================.
If the test fails (by changing “1 + 2” to “2 + 2” for example), then we get the following output:
Example 13-3. Output from Test Program
,.,. t1 XTS Version 0.2 ---- t1 Example test program. * t1 error in arithmetic, got 4, expected 3. **** t1 FAILED ****************************.
#include <report.h>
void
test
(const char *
name , const char *
description );
The test function is called to initialize the test. The arguments name and description are copied into static memory, and used in the reports written by the other functions.
#include <report.h>
void
comment
(const char * s , ... );
The comment function is use to write comments to the test output log. Comments have a distinctive prefix.
#include <report.h>
void
failed
(const char *
reason , ... );
The failed function is called to indicate that a test has failed, and gives the reason for the failure.
#include <report.h>
void
result
( );
The result function is called at the end of a test program to print the test result.