blob: 0a5ec6ef31d11d021f21725aae7425c49e6b995e [file] [log] [blame]
/* Disable this test for 16-bit targets. */
#if __INT_MAX__ > 32767
#include "compat-common.h"
#include "struct-align-2.h"
#define TEST(NAME) \
struct outer_##NAME { \
int i; \
struct epoll_event_##NAME ee; \
}; \
\
extern unsigned int v1_##NAME; \
extern unsigned int v2_##NAME; \
extern unsigned long long v3_##NAME; \
\
extern struct outer_##NAME s_##NAME[2]; \
\
extern void pass_##NAME (struct outer_##NAME); \
extern struct outer_##NAME return_##NAME (void); \
\
void \
checkp_##NAME (struct outer_##NAME *p) \
{ \
if (p->i != v1_##NAME) \
DEBUG_CHECK; \
if (p->ee.events != v2_##NAME) \
DEBUG_CHECK; \
if (p->ee.data != v3_##NAME) \
DEBUG_CHECK; \
} \
\
void \
test_##NAME (void) \
{ \
struct outer_##NAME s; \
DEBUG_FPUTS (DESC_##NAME); \
DEBUG_NL; \
DEBUG_FPUTS (" global array"); \
checkp_##NAME (&s_##NAME[0]); \
checkp_##NAME (&s_##NAME[1]); \
DEBUG_NL; \
DEBUG_FPUTS (" argument"); \
pass_##NAME (s_##NAME[0]); \
DEBUG_NL; \
DEBUG_FPUTS (" function result"); \
s = return_##NAME (); \
checkp_##NAME (&s); \
DEBUG_NL; \
}
TEST (orig)
TEST (structmax)
TEST (struct4)
TEST (struct8)
TEST (data4)
TEST (data8)
TEST (p)
TEST (pstruct4)
TEST (pstruct8)
TEST (pdata4)
TEST (pdata8)
#else
int i; /* prevent compiling an empty file */
#endif /* __INT_MAX__ */