Add okv function to the TAP test library
authorRuss Allbery <rra@stanford.edu>
Wed, 9 Jun 2010 01:40:11 +0000 (18:40 -0700)
committerDerrick Brashear <shadow@dementia.org>
Wed, 9 Jun 2010 17:39:29 +0000 (10:39 -0700)
Add an okv() varient of the ok() function that takes the arguments as
a va_list instead of as a variable argument list.  This makes it easier
to reuse ok() when writing other tests.

Change-Id: Icaeaaf9d6bd9d54bfd886a75961d98367ee0fb9a
Reviewed-on: http://gerrit.openafs.org/2098
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

tests/tap/basic.c
tests/tap/basic.h

index 2cdafa6..ac40e4f 100644 (file)
@@ -176,6 +176,21 @@ ok(int success, const char *format, ...)
 
 
 /*
+ * Same as ok(), but takes the format arguments as a va_list.
+ */
+void
+okv(int success, const char *format, va_list args)
+{
+    printf("%sok %lu", success ? "" : "not ", testnum++);
+    if (!success)
+        _failed++;
+    if (format != NULL)
+        print_desc(format, args);
+    putchar('\n');
+}
+
+
+/*
  * Skip a test.
  */
 void
index 9ce4c7a..f8e5a58 100644 (file)
@@ -15,6 +15,7 @@
 #ifndef TAP_BASIC_H
 #define TAP_BASIC_H 1
 
+#include <stdarg.h>             /* va_list */
 #include <sys/types.h>          /* pid_t */
 
 /*
@@ -72,9 +73,14 @@ void plan_lazy(void);
 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)));