7 This file is part of the Public Domain C Library (PDCLib).
8 Permission is granted to use, modify, and / or redistribute at will.
13 #include <_PDCLIB_test.h>
20 typedef int (*intfunc_t)( void );
35 static int test( enum tag_t s, ... )
46 TESTCASE( va_arg( ap, int ) == INT_MAX );
47 tag = va_arg( ap, enum tag_t );
52 TESTCASE( va_arg( ap, long ) == LONG_MAX );
53 tag = va_arg( ap, enum tag_t );
58 TESTCASE( va_arg( ap, long long ) == LLONG_MAX );
59 tag = va_arg( ap, enum tag_t );
64 TESTCASE( va_arg( ap, double ) == DBL_MAX );
65 tag = va_arg( ap, enum tag_t );
70 TESTCASE( va_arg( ap, long double ) == LDBL_MAX );
71 tag = va_arg( ap, enum tag_t );
76 TESTCASE( *( va_arg( ap, int * ) ) == INT_MAX );
77 tag = va_arg( ap, enum tag_t );
82 TESTCASE( *( va_arg( ap, long double * ) ) == LDBL_MAX );
83 tag = va_arg( ap, enum tag_t );
88 TESTCASE( (va_arg( ap, intfunc_t ))() == INT_MAX );
89 tag = va_arg( ap, enum tag_t );
109 long double d = LDBL_MAX;
111 test( TAG_INT, INT_MAX, TAG_END );
112 test( TAG_LONG, LONG_MAX, TAG_LLONG, LLONG_MAX, TAG_END );
113 test( TAG_DBL, DBL_MAX, TAG_LDBL, LDBL_MAX, TAG_END );
114 test( TAG_INTPTR, &x, TAG_LDBLPTR, &d, TAG_FUNCPTR, dummy, TAG_END );