]> pd.if.org Git - ctap/blobdiff - ctap.c
reverse test parameters, add prove
[ctap] / ctap.c
diff --git a/ctap.c b/ctap.c
index 9bdf9f395b541d275a2ae93453389ac972e73d93..02fadf17232d5861cee04286225ea54cf23ca1c1 100644 (file)
--- 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);
        }
 }