#pragma once #include #include #include #include "unittest/testframework.h" #include #include #include #include #include // workaround for error #3185-D: no '#pragma diagnostic push' was found to match this 'diagnostic pop' #if _CCCL_COMPILER(NVHPC) # undef CATCH_INTERNAL_START_WARNINGS_SUPPRESSION # undef CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION _Pragma("diag push") # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION _Pragma("diag pop") #endif // workaround for error // * MSVC14.39: #3185-D: no '#pragma diagnostic push' was found to match this 'diagnostic pop' // * MSVC14.29: internal error: assertion failed: alloc_copy_of_pending_pragma: copied pragma has source sequence entry // (pragma.c, line 526 in alloc_copy_of_pending_pragma) // see also upstream Catch2 issue: https://github.com/catchorg/Catch2/issues/2636 #if _CCCL_COMPILER(MSVC) # undef CATCH_INTERNAL_START_WARNINGS_SUPPRESSION # undef CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION # undef CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS # define CATCH_INTERNAL_START_WARNINGS_SUPPRESSION # define CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION # define CATCH_INTERNAL_SUPPRESS_UNUSED_VARIABLE_WARNINGS #endif // corresponds to DECLARE_VECTOR_UNITTEST using vector_list = cuda::std::__type_list< // host thrust::host_vector, thrust::host_vector, thrust::host_vector, thrust::host_vector, thrust::host_vector, thrust::host_vector>, // device thrust::device_vector, thrust::device_vector, thrust::device_vector, thrust::device_vector, thrust::device_vector, thrust::device_vector>, // universal thrust::universal_vector, thrust::universal_host_pinned_vector>; // corresponds to DECLARE_INTEGRAL_VECTOR_UNITTEST using integral_vector_list = cuda::std::__type_list< // host thrust::host_vector, thrust::host_vector, thrust::host_vector, // device thrust::device_vector, thrust::device_vector, thrust::device_vector, // universal thrust::universal_vector, thrust::universal_host_pinned_vector>; // corresponds to DECLARE_GENERIC_UNITTEST using generic_list = cuda::std::__type_list; // corresponds to DECLARE_VARIABLE_UNITTEST using variable_list = cuda::std::__type_list;