123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /* This is part of the netCDF package.
- Copyright 2005 University Corporation for Atmospheric Research/Unidata
- See COPYRIGHT file for conditions of use.
- Common includes, defines, etc., for test code in the libsrc4 and
- nc_test4 directories.
- */
- #ifndef _ERR_MACROS_H
- #define _ERR_MACROS_H
- #include <config.h>
- #include <assert.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- /* Err is used to keep track of errors within each set of tests,
- * total_err is the number of errors in the entire test program, which
- * generally cosists of several sets of tests. */
- static int total_err = 0, err = 0;
- #if 0
- /* This is handy for print statements. */
- static char *format_name[] = {"", "classic", "64-bit offset", "netCDF-4",
- "netCDF-4 classic model"};
- #endif
- /* This macro prints an error message with line number and name of
- * test program. */
- #define ERR do { \
- fflush(stdout); /* Make sure our stdout is synced with stderr. */ \
- err++; \
- fprintf(stderr, "Sorry! Unexpected result, %s, line: %d\n", \
- __FILE__, __LINE__); \
- return 2; \
- } while (0)
- /* This macro prints an error message with line number and name of
- * test program, and then exits the program. */
- #define ERR_RET do { \
- fflush(stdout); /* Make sure our stdout is synced with stderr. */ \
- fprintf(stderr, "Sorry! Unexpected result, %s, line: %d\n", \
- __FILE__, __LINE__); \
- return 2; \
- } while (0)
- /* After a set of tests, report the number of errors, and increment
- * total_err. */
- #define SUMMARIZE_ERR do { \
- if (err) \
- { \
- printf("%d failures\n", err); \
- total_err += err; \
- err = 0; \
- } \
- else \
- printf("ok.\n"); \
- } while (0)
- /* If extra memory debugging is not in use (as it usually isn't),
- * define away the nc_exit function, which may be in some tests. */
- #ifndef EXTRA_MEM_DEBUG
- #define nc_exit()
- #endif
- /* This macro prints out our total number of errors, if any, and exits
- * with a 0 if there are not, or a 2 if there were errors. Make will
- * stop if a non-zero value is returned from a test program. */
- #define FINAL_RESULTS do { \
- if (total_err) \
- { \
- printf("%d errors detected! Sorry!\n", total_err); \
- return 2; \
- } \
- printf("*** Tests successful!\n"); \
- return 0; \
- } while (0)
- #endif /* _ERR_MACROS_H */
|