summaryrefslogtreecommitdiff
path: root/tests/test.h
blob: 36dc397c92a2ec1198a335b4d5ea4ef37e0e15da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/* 
 * test.h
 *
 * Useful definitions and declarations for tests.
 */

#ifndef _PTHREAD_TEST_H_
#define _PTHREAD_TEST_H_

#include <pthread.h>
#include <stdio.h>

char * error_string[] = {
  "ZERO",
  "EPERM",
  "ENOFILE_or_ENOENT",
  "ESRCH",
  "EINTR",
  "EIO",
  "ENXIO",
  "E2BIG",
  "ENOEXEC",
  "EBADF",
  "ECHILD",
  "EAGAIN",
  "ENOMEM",
  "EACCES",
  "EFAULT",
  "UNKNOWN_15",
  "EBUSY",
  "EEXIST",
  "EXDEV",
  "ENODEV",
  "ENOTDIR",
  "EISDIR",
  "EINVAL",
  "ENFILE",
  "EMFILE",
  "ENOTTY",
  "UNKNOWN_26",
  "EFBIG",
  "ENOSPC",
  "ESPIPE",
  "EROFS",
  "EMLINK",
  "EPIPE",
  "EDOM",
  "ERANGE",
  "UNKNOWN_35",
  "EDEADLOCK_or_EDEADLK",
  "UNKNOWN_37",
  "ENAMETOOLONG",
  "ENOLCK",
  "ENOSYS",
  "ENOTEMPTY",
  "EILSEQ",
};

/*
 * The Mingw32 assert macro calls the CRTDLL _assert function
 * which pops up a dialog. We want to run in batch mode so
 * we define our own assert macro.
 */
#ifdef NDEBUG

#define assert(e) ((void)0)

#else /* NDEBUG */

#ifdef assert
# undef assert
#endif

#ifndef ASSERT_TRACE
#define ASSERT_TRACE 0
#endif

#define assert(e) \
  ((e) ? ((ASSERT_TRACE) ? fprintf(stderr, \
                                   "Assertion succeeded: (%s), file %s, line %d\n", \
			           #e, __FILE__, (int) __LINE__), \
	                           fflush(stderr) : \
                            (void) 0) : \
         (fprintf(stderr, "Assertion failed: (%s), file %s, line %d\n", \
                  #e, __FILE__, (int) __LINE__), exit(1)))

#endif /* NDEBUG */


#endif