X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftap%2Ftap.h;h=06978e29c33aec3ba7b99bb96a868954fe7c2b28;hp=46f0779e782b117389c07f7781543b5a14c92fd8;hb=b2e751d04e590c49de02ceb56a7cafe877762b0e;hpb=43652dec7d609929ae06a2730c20ecad22ffb356 diff --git a/ccan/tap/tap.h b/ccan/tap/tap.h index 46f0779e..06978e29 100644 --- a/ccan/tap/tap.h +++ b/ccan/tap/tap.h @@ -1,3 +1,5 @@ +#ifndef CCAN_TAP_H +#define CCAN_TAP_H /*- * Copyright (c) 2004 Nik Clayton * All rights reserved. @@ -89,7 +91,7 @@ void plan_tests(unsigned int tests); * int x = somefunc(); * if (x > 0) * pass("somefunc() returned a valid value"); - * else + * else * fail("somefunc() returned an invalid value"); */ # define pass(...) ok(1, __VA_ARGS__) @@ -118,7 +120,7 @@ void plan_tests(unsigned int tests); # define skip_end } while(0) unsigned int _gen_result(int, const char *, const char *, unsigned int, - const char *, ...) PRINTF_ATTRIBUTE(5, 6); + const char *, ...) PRINTF_FMT(5, 6); /** * diag - print a diagnostic message (use instead of printf/fprintf) @@ -130,7 +132,7 @@ unsigned int _gen_result(int, const char *, const char *, unsigned int, * Example: * diag("Now running complex tests"); */ -void diag(const char *fmt, ...) PRINTF_ATTRIBUTE(1, 2); +void diag(const char *fmt, ...) PRINTF_FMT(1, 2); /** * skip - print a diagnostic message (use instead of printf/fprintf) @@ -153,7 +155,7 @@ void diag(const char *fmt, ...) PRINTF_ATTRIBUTE(1, 2); * skip(1, "Don't have SOME_FEATURE"); * #endif */ -void skip(unsigned int n, const char *fmt, ...) PRINTF_ATTRIBUTE(2, 3); +void skip(unsigned int n, const char *fmt, ...) PRINTF_FMT(2, 3); /** * todo_start - mark tests that you expect to fail. @@ -167,7 +169,7 @@ void skip(unsigned int n, const char *fmt, ...) PRINTF_ATTRIBUTE(2, 3); * This way, should a test start to succeed unexpectedly, tools like prove(1) * will indicate this and you can move the test out of the todo block. This * is much more useful than simply commenting out (or '#if 0') the tests. - * + * * From the Test::More documentation: * If it's something the programmer hasn't done yet, use TODO. This is for * any code you haven't written yet, or bugs you have yet to fix, but want to @@ -183,7 +185,7 @@ void skip(unsigned int n, const char *fmt, ...) PRINTF_ATTRIBUTE(2, 3); * ok(dwim(), "Did what the user wanted"); * todo_end(); */ -void todo_start(const char *fmt, ...) PRINTF_ATTRIBUTE(1, 2); +void todo_start(const char *fmt, ...) PRINTF_FMT(1, 2); /** * todo_end - end of tests you expect to fail. @@ -195,7 +197,7 @@ void todo_end(void); /** * exit_status - the value that main should return. * - * For maximum compatability your test program should return a particular exit + * For maximum compatibility your test program should return a particular exit * code (ie. 0 if all tests were run, and every test which was expected to * succeed succeeded). * @@ -243,4 +245,12 @@ void plan_no_plan(void); */ void plan_skip_all(const char *reason); +/** + * tap_fail_callback - function to call when we fail + * + * This can be used to ease debugging, or exit on the first failure. + */ +void (*tap_fail_callback)(void); + #endif /* C99 or gcc */ +#endif /* CCAN_TAP_H */