Add a license tag (though it's a weird BSD variant), remove whitespace, and
avoid void pointer arithmetic.
*
* Based on the original libtap, Copyright (c) 2004 Nik Clayton.
*
*
* Based on the original libtap, Copyright (c) 2004 Nik Clayton.
*
+ * License: BSD (2 clause)
+ *
* Example:
* #include <string.h>
* #include <ccan/tap/tap.h>
* Example:
* #include <string.h>
* #include <ccan/tap/tap.h>
* test_comment -- a comment to print afterwards, may be NULL
*/
unsigned int
* test_comment -- a comment to print afterwards, may be NULL
*/
unsigned int
-_gen_result(int ok, const char *func, const char *file, unsigned int line,
+_gen_result(int ok, const char *func, const char *file, unsigned int line,
const char *test_name, ...)
{
va_list ap;
const char *test_name, ...)
{
va_list ap;
- _diag(" Failed %stest (%s:%s() at line %d)",
+ _diag(" Failed %stest (%s:%s() at line %d)",
todo ? "(TODO) " : "", file, func, line);
free(local_test_name);
todo ? "(TODO) " : "", file, func, line);
free(local_test_name);
_diag("Looks like you planned %d tests but only ran %d.",
e_tests, test_count);
if(failures) {
_diag("Looks like you planned %d tests but only ran %d.",
e_tests, test_count);
if(failures) {
- _diag("Looks like you failed %d tests of %d run.",
+ _diag("Looks like you failed %d tests of %d run.",
failures, test_count);
}
UNLOCK;
failures, test_count);
}
UNLOCK;
- _diag("Looks like you failed %d tests of %d.",
+ _diag("Looks like you failed %d tests of %d.",
failures, test_count);
UNLOCK;
failures, test_count);
UNLOCK;
atexit(_cleanup);
/* stdout needs to be unbuffered so that the output appears
atexit(_cleanup);
/* stdout needs to be unbuffered so that the output appears
- in the same place relative to stderr output as it does
+ in the same place relative to stderr output as it does
with Test::Harness */
// setbuf(stdout, 0);
run_once = 1;
with Test::Harness */
// setbuf(stdout, 0);
run_once = 1;
while(n-- > 0) {
test_count++;
while(n-- > 0) {
test_count++;
- printf("ok %d # skip %s\n", test_count,
- skip_msg != NULL ?
+ printf("ok %d # skip %s\n", test_count,
+ skip_msg != NULL ?
skip_msg : "libtap():malloc() failed");
}
skip_msg : "libtap():malloc() failed");
}
- /* Return the number of tests that failed + the number of tests
+ /* Return the number of tests that failed + the number of tests
that weren't run */
r = failures + e_tests - test_count;
UNLOCK;
that weren't run */
r = failures + e_tests - test_count;
UNLOCK;
+#ifndef CCAN_TAP_H
+#define CCAN_TAP_H
/*-
* Copyright (c) 2004 Nik Clayton
* All rights reserved.
/*-
* Copyright (c) 2004 Nik Clayton
* All rights reserved.
* int x = somefunc();
* if (x > 0)
* pass("somefunc() returned a valid value");
* int x = somefunc();
* if (x > 0)
* pass("somefunc() returned a valid value");
* fail("somefunc() returned an invalid value");
*/
# define pass(...) ok(1, __VA_ARGS__)
* fail("somefunc() returned an invalid value");
*/
# define pass(...) ok(1, __VA_ARGS__)
* 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.
* 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
* 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
void (*tap_fail_callback)(void);
#endif /* C99 or gcc */
void (*tap_fail_callback)(void);
#endif /* C99 or gcc */
done = write(fd, data, size);
if (done <= 0)
_exit(1);
done = write(fd, data, size);
if (done <= 0)
_exit(1);
+ data = (const char *)data + done;