ATF-devel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Take action based on check outcome

On Tue, May 4, 2010 at 5:12 AM, Stathis Kamperis <> 
> For once more, hello :)
> There are cases where I would like to take actions depending on the
> outcome of a check.
> E.g. (schematic):
> x = random_double();
> y = random_double();
> rv = mathfunc(x, y);
> if (!ATF_CHECK(... some condition on rv ...) {
>    fprintf(stderr, "mathfunc() failed on: x: %e\t y:%e  (got: %e)\n",
> x, y, rv);
> }

Take a look at atf-c/macros.h.  There are more checks that you can use.

If all you want is to change the failure message, do:
ATF_CHECK_MSG(condition, "My message %s", some format).  You can also
check for equality with ATF_CHECK_EQ, which will provide a more
accurate message automatically, or ATF_CHECK_EQ_MSG to provide your
own message.

If the macros do not provide enough functionality, then implement your
own check.  E.g., for a fatal error:

if (some condition)
    atf_tc_fail("condition blah not met due to %d %d", x, y);

Or use atf_tc_fail_nonfatal to report an error message, record the
test as failed, but continue execution of the test.

Julio Merino

Home | Main Index | Thread Index | Old Index