CMake/Utilities/KWIML/test/test_ABI_endian.h.in

48 lines
1.2 KiB
C

/*============================================================================
Kitware Information Macro Library
Copyright 2010-2011 Kitware, Inc.
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include <stdio.h>
#ifdef __cplusplus
# define LANG "C++ "
#else
# define LANG "C "
#endif
static int test_ABI_endian(void)
{
int result = 1;
{
#if defined(@KWIML@_ABI_ENDIAN_ID)
int expect;
union { short s; unsigned char c[sizeof(short)]; } x;
x.s = 1;
expect = (x.c[0] == 1 ?
@KWIML@_ABI_ENDIAN_ID_LITTLE : @KWIML@_ABI_ENDIAN_ID_BIG);
printf(LANG "@KWIML@_ABI_ENDIAN_ID: expected [%d], got [%d]",
expect, @KWIML@_ABI_ENDIAN_ID);
if(@KWIML@_ABI_ENDIAN_ID == expect)
{
printf(", PASSED\n");
}
else
{
printf(", FAILED\n");
result = 0;
}
#else
printf(LANG "@KWIML@_ABI_ENDIAN_ID: unknown, FAILED\n");
result = 0;
#endif
}
return result;
}