@@ -393,28 +393,44 @@ CUDA_TEST(ManagedArray, UserCallback)
393393#endif
394394#endif
395395
396- #if !defined(NDEBUG)
397- TEST (ManagedArray, OutOfRangeAccess)
396+ #if defined(CHAI_ENABLE_BOUNDS_CHECK)
397+ TEST (ManagedArray, UpperOutOfRangeAccess)
398+ {
399+ chai::ManagedArray<float > array (20 );
400+
401+ array[19 ] = 0.0 ;
402+ EXPECT_DEATH_IF_SUPPORTED ( array[20 ] = 0.0 , " .*" );
403+ }
404+
405+ TEST (ManagedArray, LowerOutOfRangeAccess)
406+ {
407+ chai::ManagedArray<float > array (20 );
408+
409+ array[0 ] = 0.0 ;
410+ EXPECT_DEATH_IF_SUPPORTED ( array[-1 ] = 0.0 , " .*" );
411+ }
412+
413+ #if defined(CHAI_ENABLE_CUDA)
414+ CUDA_TEST (ManagedArray, UpperOutOfRangeAccessGPU)
398415{
399416 chai::ManagedArray<float > array (20 );
400417
401418 EXPECT_DEATH (
402- forall (sequential (), 10 , 50 , [=] (int i) {
419+ forall (cuda (), 19 , 20 , [=] __device__ (int i) {
403420 array[i] = 0 .0f ;
404421 });,
405- " i < m_elems" );
422+ " i > m_elems" );
406423}
407424
408- #if defined(CHAI_ENABLE_CUDA)
409- CUDA_TEST (ManagedArray, OutOfRangeAccessGPU)
425+ CUDA_TEST (ManagedArray, LowerOutOfRangeAccessGPU)
410426{
411427 chai::ManagedArray<float > array (20 );
412428
413429 EXPECT_DEATH (
414- forall (cuda (), 10 , 50 , [=] __device__ (int i) {
430+ forall (cuda (), - 1 , 0 , [=] __device__ (int i) {
415431 array[i] = 0 .0f ;
416432 });,
417- " i < m_elems " );
433+ " i < 0 " );
418434}
419435#endif // defined(CHAI_ENABLE_CUDA)
420436#endif // !defined(NDEBUG)
0 commit comments