diff --git a/test/unit/reducer/test-reducer-constructors-cuda.cpp b/test/unit/reducer/test-reducer-constructors-cuda.cpp index 6b57120148..a0dca0b5d4 100644 --- a/test/unit/reducer/test-reducer-constructors-cuda.cpp +++ b/test/unit/reducer/test-reducer-constructors-cuda.cpp @@ -12,12 +12,21 @@ #include "tests/test-reducer-constructors.hpp" #if defined(RAJA_ENABLE_CUDA) +using CudaBasicReducerConstructorTypes = + Test< camp::cartesian_product< CudaReducerPolicyList, + DataTypeList, + CudaResourceList > >::Types; + using CudaInitReducerConstructorTypes = Test< camp::cartesian_product< CudaReducerPolicyList, DataTypeList, CudaResourceList, CudaForoneList > >::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(CudaBasicTest, + ReducerBasicConstructorUnitTest, + CudaBasicReducerConstructorTypes); + INSTANTIATE_TYPED_TEST_SUITE_P(CudaInitTest, ReducerInitConstructorUnitTest, CudaInitReducerConstructorTypes); diff --git a/test/unit/reducer/test-reducer-constructors-hip.cpp b/test/unit/reducer/test-reducer-constructors-hip.cpp index 0de347217d..5f898d4da4 100644 --- a/test/unit/reducer/test-reducer-constructors-hip.cpp +++ b/test/unit/reducer/test-reducer-constructors-hip.cpp @@ -12,12 +12,21 @@ #include "tests/test-reducer-constructors.hpp" #if defined(RAJA_ENABLE_HIP) +using HipBasicReducerConstructorTypes = + Test< camp::cartesian_product< HipReducerPolicyList, + DataTypeList, + HipResourceList > >::Types; + using HipInitReducerConstructorTypes = Test< camp::cartesian_product< HipReducerPolicyList, DataTypeList, HipResourceList, HipForoneList > >::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(HipBasicTest, + ReducerBasicConstructorUnitTest, + HipBasicReducerConstructorTypes); + INSTANTIATE_TYPED_TEST_SUITE_P(HipInitTest, ReducerInitConstructorUnitTest, HipInitReducerConstructorTypes); diff --git a/test/unit/reducer/tests/test-reducer-constructors.hpp b/test/unit/reducer/tests/test-reducer-constructors.hpp index 953eabf682..a77973c4fc 100644 --- a/test/unit/reducer/tests/test-reducer-constructors.hpp +++ b/test/unit/reducer/tests/test-reducer-constructors.hpp @@ -29,9 +29,38 @@ class ReducerInitConstructorUnitTest : public ::testing::Test TYPED_TEST_SUITE_P(ReducerBasicConstructorUnitTest); TYPED_TEST_SUITE_P(ReducerInitConstructorUnitTest); +#if defined(RAJA_ENABLE_CUDA) || defined(RAJA_ENABLE_HIP) template -void testReducerConstructor() +typename std::enable_if< +#if defined(RAJA_ENABLE_CUDA) // CUDA policy does nothing. + std::is_same::value +#elif defined(RAJA_ENABLE_HIP) // HIP policy does nothing. + std::is_same::value +#else +#error Please enable a supported GPU platform, e.g. CUDA or HIP. +#endif + >::type +testReducerConstructor() +{ + // do nothing +} +#endif + +// Basic constructor tests are only expected to be verified on the host. +// Should not run this on a GPU. +template +typename std::enable_if< // CPU policy. +#if defined(RAJA_ENABLE_CUDA) + !std::is_same::value +#elif defined(RAJA_ENABLE_HIP) + !std::is_same::value +#else + true // Always run for non-GPU policies. +#endif + >::type +testReducerConstructor() { RAJA::ReduceSum reduce_sum; RAJA::ReduceMin reduce_min;