aboutsummaryrefslogtreecommitdiff
path: root/tests/tap/basic.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tap/basic.h')
-rw-r--r--tests/tap/basic.h41
1 files changed, 34 insertions, 7 deletions
diff --git a/tests/tap/basic.h b/tests/tap/basic.h
index efe94ba..9602db4 100644
--- a/tests/tap/basic.h
+++ b/tests/tap/basic.h
@@ -1,6 +1,7 @@
/*
* Basic utility routines for the TAP protocol.
*
+ * Copyright 2009, 2010 Russ Allbery <rra@stanford.edu>
* Copyright 2006, 2007, 2008
* Board of Trustees, Leland Stanford Jr. University
* Copyright (c) 2004, 2005, 2006
@@ -14,6 +15,7 @@
#ifndef TAP_BASIC_H
#define TAP_BASIC_H 1
+#include <stdarg.h> /* va_list */
#include <sys/types.h> /* pid_t */
/*
@@ -56,29 +58,40 @@ BEGIN_DECLS
* The test count. Always contains the number that will be used for the next
* test status.
*/
-extern int testnum;
+extern unsigned long testnum;
/* Print out the number of tests and set standard output to line buffered. */
-void plan(int count);
+void plan(unsigned long count);
+
+/*
+ * Prepare for lazy planning, in which the plan will be printed automatically
+ * at the end of the test program.
+ */
+void plan_lazy(void);
/* Skip the entire test suite. Call instead of plan. */
void skip_all(const char *format, ...)
__attribute__((__noreturn__, __format__(printf, 1, 2)));
-/* Basic reporting functions. */
+/*
+ * Basic reporting functions. The okv() function is the same as ok() but
+ * takes the test description as a va_list to make it easier to reuse the
+ * reporting infrastructure when writing new tests.
+ */
void ok(int success, const char *format, ...)
__attribute__((__format__(printf, 2, 3)));
+void okv(int success, const char *format, va_list args);
void skip(const char *reason, ...)
__attribute__((__format__(printf, 1, 2)));
/* Report the same status on, or skip, the next count tests. */
-void ok_block(int count, int success, const char *format, ...)
+void ok_block(unsigned long count, int success, const char *format, ...)
__attribute__((__format__(printf, 3, 4)));
-void skip_block(int count, const char *reason, ...)
+void skip_block(unsigned long count, const char *reason, ...)
__attribute__((__format__(printf, 2, 3)));
/* Check an expected value against a seen value. */
-void is_int(int wanted, int seen, const char *format, ...)
+void is_int(long wanted, long seen, const char *format, ...)
__attribute__((__format__(printf, 3, 4)));
void is_double(double wanted, double seen, const char *format, ...)
__attribute__((__format__(printf, 3, 4)));
@@ -93,6 +106,20 @@ void bail(const char *format, ...)
void sysbail(const char *format, ...)
__attribute__((__noreturn__, __nonnull__, __format__(printf, 1, 2)));
+/* Report a diagnostic to stderr prefixed with #. */
+void diag(const char *format, ...)
+ __attribute__((__nonnull__, __format__(printf, 1, 2)));
+void sysdiag(const char *format, ...)
+ __attribute__((__nonnull__, __format__(printf, 1, 2)));
+
+/*
+ * Find a test file under BUILD or SOURCE, returning the full path. The
+ * returned path should be freed with test_file_path_free().
+ */
+char *test_file_path(const char *file)
+ __attribute__((__malloc__, __nonnull__));
+void test_file_path_free(char *path);
+
END_DECLS
-#endif /* LIBTEST_H */
+#endif /* TAP_BASIC_H */