#include <iostream>
#include <typeinfo>
+#ifdef TEST_CUDA_DEVICE
+#define TEST_VIA_STATIC_ASSERT
+#endif
+
#ifdef BOOST_BORLANDC
// we have to turn off these warnings otherwise we get swamped by the things:
#pragma option -w-8008 -w-8066
#define BOOST_TEST_MESSAGE(message)\
do{ std::cout << __FILE__ << ":" << __LINE__ << ": " << message << std::endl; }while(0)
+#ifdef TEST_CUDA_DEVICE
+#define BOOST_CHECK(pred) pred
+#else
#define BOOST_CHECK(pred)\
do{ \
if(!(pred)){\
++error_count;\
} \
}while(0)
+#endif
+#ifdef TEST_CUDA_DEVICE
+#define TT_TEST_BEGIN(trait_name)\
+ __global__ void test_proc(){
+#define TT_TEST_END }
+#define BOOST_TT_PROC __device__
+#else
#define TT_TEST_BEGIN(trait_name)\
int main(){
#define TT_TEST_END return error_count; }
+#define BOOST_TT_PROC
+#endif
#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !BOOST_WORKAROUND(BOOST_GCC, < 40704)
#define BOOST_DUMMY_MACRO_PARAM /**/
#define BOOST_DECL_TRANSFORM_TEST(name, type, from, to)\
-void name(){ TRANSFORM_CHECK(type, from, to) }
+BOOST_TT_PROC void name(){ TRANSFORM_CHECK(type, from, to) }
#define BOOST_DECL_TRANSFORM_TEST3(name, type, from)\
-void name(){ TRANSFORM_CHECK(type, from, BOOST_DUMMY_MACRO_PARAM) }
+BOOST_TT_PROC void name(){ TRANSFORM_CHECK(type, from, BOOST_DUMMY_MACRO_PARAM) }
#define BOOST_DECL_TRANSFORM_TEST2(name, type, to)\
-void name(){ TRANSFORM_CHECK(type, BOOST_DUMMY_MACRO_PARAM, to) }
+BOOST_TT_PROC void name(){ TRANSFORM_CHECK(type, BOOST_DUMMY_MACRO_PARAM, to) }
#define BOOST_DECL_TRANSFORM_TEST0(name, type)\
-void name(){ TRANSFORM_CHECK(type, BOOST_DUMMY_MACRO_PARAM, BOOST_DUMMY_MACRO_PARAM) }
+BOOST_TT_PROC void name(){ TRANSFORM_CHECK(type, BOOST_DUMMY_MACRO_PARAM, BOOST_DUMMY_MACRO_PARAM) }