KWIML: Test header inclusion after system headers

Some system headers may define macros that interfere with preprocessor
tests in KWIML headers.  Test this case to be sure that the verification
checks at the bottom of the headers do not fail.
This commit is contained in:
Brad King 2011-11-17 08:54:46 -05:00
parent a8f6159f69
commit 8be93fc487
4 changed files with 50 additions and 0 deletions

View File

@ -35,6 +35,7 @@ if(KWIML_LANGUAGE_C)
list(APPEND test_srcs list(APPEND test_srcs
test_ABI_C.c test_ABI_C.c
test_INT_C.c test_INT_C.c
test_include_C.c
) )
endif() endif()
if(KWIML_LANGUAGE_CXX) if(KWIML_LANGUAGE_CXX)
@ -42,6 +43,7 @@ if(KWIML_LANGUAGE_CXX)
list(APPEND test_srcs list(APPEND test_srcs
test_ABI_CXX.cxx test_ABI_CXX.cxx
test_INT_CXX.cxx test_INT_CXX.cxx
test_include_CXX.cxx
) )
endif() endif()

View File

@ -16,6 +16,8 @@ extern int test_ABI_C(void);
extern int test_INT_C(void); extern int test_INT_C(void);
extern int test_ABI_CXX(void); extern int test_ABI_CXX(void);
extern int test_INT_CXX(void); extern int test_INT_CXX(void);
extern int test_include_C(void);
extern int test_include_CXX(void);
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"
#endif #endif
@ -26,10 +28,12 @@ int main(void)
#ifdef KWIML_LANGUAGE_C #ifdef KWIML_LANGUAGE_C
result = test_ABI_C() && result; result = test_ABI_C() && result;
result = test_INT_C() && result; result = test_INT_C() && result;
result = test_include_C() && result;
#endif #endif
#ifdef KWIML_LANGUAGE_CXX #ifdef KWIML_LANGUAGE_CXX
result = test_ABI_CXX() && result; result = test_ABI_CXX() && result;
result = test_INT_CXX() && result; result = test_INT_CXX() && result;
result = test_include_CXX() && result;
#endif #endif
return result? 0 : 1; return result? 0 : 1;
} }

22
test/test_include_C.c Normal file
View File

@ -0,0 +1,22 @@
/*============================================================================
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>
/* Test KWIML header inclusion after above system headers. */
#include "test.h"
#include KWIML_HEADER(ABI.h)
#include KWIML_HEADER(INT.h)
int test_include_C(void)
{
return 1;
}

22
test/test_include_CXX.cxx Normal file
View File

@ -0,0 +1,22 @@
/*============================================================================
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 <string>
/* Test KWIML header inclusion after above system headers. */
#include "test.h"
#include KWIML_HEADER(ABI.h)
#include KWIML_HEADER(INT.h)
extern "C" int test_include_CXX(void)
{
return 1;
}