Grid Community Toolkit  6.2.1629922860 (tag: v6.2.20210826)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
globus_test_tap.h
Go to the documentation of this file.
1 #include <stdarg.h>
2 #include <stdio.h>
3 
9 static int total = 0;
10 static int failed = 0;
11 static int skipped = 0;
12 static void ok(int predval, const char *fmt, ...)
13 {
14  static int testno=1;
15  va_list ap;
16  printf("%s %d - ", predval ? "ok" : "not ok", testno++);
17  va_start(ap, fmt);
18  vprintf(fmt, ap);
19  va_end(ap);
20  printf("\n");
21  if (!predval)
22  {
23  failed++;
24  }
25  total++;
26 }
27 
28 #if __STDC_VERSION__ >= 199901L
29 #define get_explanationok(predval, ...) __VA_ARGS__
30 
31 /* This only works if the second parameter is a call to the ok function */
32 #define skip(skip_predicate, ...) \
33  if (skip_predicate) \
34  { \
35  ok(1, " # SKIP (" #skip_predicate ") " get_explanation ## __VA_ARGS__); \
36  skipped++; \
37  } \
38  else \
39  { \
40  __VA_ARGS__; \
41  }
42 #else
43 #define skip(skip_predicate, okcall) \
44  if (skip_predicate) \
45  { \
46  ok(1, " # SKIP (" #skip_predicate ") "); \
47  skipped++; \
48  } \
49  else \
50  { \
51  okcall; \
52  }
53 #endif
54 
55 #define TEST_EXIT_CODE (skipped == total) ? 77 : failed