X-Git-Url: https://pd.if.org/git/?p=ctap;a=blobdiff_plain;f=ctap.c;h=02fadf17232d5861cee04286225ea54cf23ca1c1;hp=9bdf9f395b541d275a2ae93453389ac972e73d93;hb=fdcc11b029058dd4555a8c04a1cac4f6ca58bc81;hpb=0e1d3c29ca96ab38343972209ed6e8c73719bb03 diff --git a/ctap.c b/ctap.c index 9bdf9f3..02fadf1 100644 --- a/ctap.c +++ b/ctap.c @@ -171,69 +171,97 @@ void diag(const char *fmt, ...) { printf("\n"); } -void is_hex(unsigned long wanted, unsigned long seen, const char *fmt, ...) { +void is_hex(unsigned long have, unsigned long want, const char *fmt, ...) { va_list args; + int pass; + + pass = have == want; if (fmt) { va_start(args, fmt); - okv(wanted == seen, fmt, args); + okv(pass, fmt, args); va_end(args); } else { - ok(wanted == seen, NULL); + ok(pass, NULL); } - if (wanted != seen) { - diag("wanted: %ld", wanted); - diag("got : %ld", seen); + if (!pass) { + diag("wanted: %ld", want); + diag("got : %ld", have); } } +void is_int(long have, long want, const char *fmt, ...) { + va_list args; + int pass; + + pass = have == want; + if (fmt) { + va_start(args, fmt); + okv(pass, fmt, args); + va_end(args); + } else { + ok(pass, NULL); + } + if (!pass) { + diag("wanted: %ld", want); + diag("got : %ld", have); + } +} -void is_int(long wanted, long seen, const char *fmt, ...) { +void is_double(double have, double want, double eps, const char *fmt, ...) { + int pass; va_list args; + + pass = fabs(want - have) <= eps; if (fmt) { va_start(args, fmt); - okv(wanted == seen, fmt, args); + okv(pass, fmt, args); va_end(args); } else { - ok(wanted == seen, NULL); + ok(pass, NULL); } - if (wanted != seen) { - diag("wanted: %ld", wanted); - diag("got : %ld", seen); + if (!pass) { + diag("wanted: %f", want); + diag("got : %f", have); } } -void is_double(double wanted, double seen, double eps, const char *fmt, ...) { +void is_compare(void *have, void *want, + int (*cmp)(void *,void *), + const char *fmt, ... + ) { int pass; va_list args; - pass = fabs(wanted - seen) <= eps; + pass = !cmp(have, want); if (fmt) { va_start(args, fmt); okv(pass, fmt, args); va_end(args); } else { - ok(wanted == seen, NULL); + ok(pass, NULL); } + /* no way to print them with out more functions if (!pass) { - diag("wanted: %f", wanted); - diag("got : %f", seen); + diag("wanted: %s", want); + diag("got : %s", have); } + */ } -void is_string(const char *wanted, const char *seen, const char *fmt, ...) { +void is_string(const char *have, const char *want, const char *fmt, ...) { int pass; va_list args; - pass = !strcmp(wanted,seen); + pass = !strcmp(have,want); if (fmt) { va_start(args, fmt); okv(pass, fmt, args); va_end(args); } else { - ok(wanted == seen, NULL); + ok(pass, NULL); } if (!pass) { - diag("wanted: %s", wanted); - diag("got : %s", seen); + diag("wanted: %s", want); + diag("got : %s", have); } }