Mercurial > libjeffpc
changeset 662:e5d8203935d2
tests: add check_rets helper
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sun, 10 Feb 2019 21:29:23 -0500 |
parents | 6ba753927d3f |
children | 10cf546692c8 |
files | tests/test.c |
diffstat | 1 files changed, 36 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test.c Sun Feb 10 21:45:35 2019 -0500 +++ b/tests/test.c Sun Feb 10 21:29:23 2019 -0500 @@ -56,6 +56,42 @@ exit(1); } +/* + * Compare two return values (0s or negated errnos), and fail if they don't + * match. + */ +void check_rets(int exp, int got, const char *fmt, ...) +{ + va_list ap; + + if (exp == got) + return; + + fprintf(stderr, "TEST FAILED: "); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + fprintf(stderr, " "); + + if (got && !exp) + fprintf(stderr, "returned %s (%d), expected success", + xstrerror(got), got); + + if (got && exp) + fprintf(stderr, "returned %s (%d), expected %s (%d)", + xstrerror(got), got, xstrerror(exp), exp); + + if (!got && exp) + fprintf(stderr, "succeded, expected %s (%d)", + xstrerror(exp), exp); + + fprintf(stderr, "\n"); + + exit(1); +} + void test_set_panic_string(const char *str) { expected_panic_string = str;