3 This file is part of the Public Domain C Library (PDCLib).
4 Permission is granted to use, modify, and / or redistribute at will.
11 #include "_PDCLIB_test.h"
13 typedef int (*intfunc_t)( void );
28 static int dummy( void )
33 static int test( enum tag_t s, ... )
44 TESTCASE( va_arg( ap, int ) == INT_MAX );
45 tag = va_arg( ap, enum tag_t );
50 TESTCASE( va_arg( ap, long ) == LONG_MAX );
51 tag = va_arg( ap, enum tag_t );
56 TESTCASE( va_arg( ap, long long ) == LLONG_MAX );
57 tag = va_arg( ap, enum tag_t );
62 TESTCASE( va_arg( ap, double ) == DBL_MAX );
63 tag = va_arg( ap, enum tag_t );
68 TESTCASE( va_arg( ap, long double ) == LDBL_MAX );
69 tag = va_arg( ap, enum tag_t );
74 TESTCASE( *( va_arg( ap, int * ) ) == INT_MAX );
75 tag = va_arg( ap, enum tag_t );
80 TESTCASE( *( va_arg( ap, long double * ) ) == LDBL_MAX );
81 tag = va_arg( ap, enum tag_t );
87 TESTCASE( ( function = va_arg( ap, intfunc_t ) ) == dummy );
88 TESTCASE( function() == INT_MAX );
89 tag = va_arg( ap, enum tag_t );
104 long double d = LDBL_MAX;
106 test( TAG_INT, INT_MAX, TAG_END );
107 test( TAG_LONG, LONG_MAX, TAG_LLONG, LLONG_MAX, TAG_END );
108 test( TAG_DBL, DBL_MAX, TAG_LDBL, LDBL_MAX, TAG_END );
109 test( TAG_INTPTR, &x, TAG_LDBLPTR, &d, TAG_FUNCPTR, dummy, TAG_END );