@@ -393,28 +393,44 @@ CUDA_TEST(ManagedArray, UserCallback)
393
393
#endif
394
394
#endif
395
395
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)
398
415
{
399
416
chai::ManagedArray<float > array (20 );
400
417
401
418
EXPECT_DEATH (
402
- forall (sequential (), 10 , 50 , [=] (int i) {
419
+ forall (cuda (), 19 , 20 , [=] __device__ (int i) {
403
420
array[i] = 0 .0f ;
404
421
});,
405
- " i < m_elems" );
422
+ " i > m_elems" );
406
423
}
407
424
408
- #if defined(CHAI_ENABLE_CUDA)
409
- CUDA_TEST (ManagedArray, OutOfRangeAccessGPU)
425
+ CUDA_TEST (ManagedArray, LowerOutOfRangeAccessGPU)
410
426
{
411
427
chai::ManagedArray<float > array (20 );
412
428
413
429
EXPECT_DEATH (
414
- forall (cuda (), 10 , 50 , [=] __device__ (int i) {
430
+ forall (cuda (), - 1 , 0 , [=] __device__ (int i) {
415
431
array[i] = 0 .0f ;
416
432
});,
417
- " i < m_elems " );
433
+ " i < 0 " );
418
434
}
419
435
#endif // defined(CHAI_ENABLE_CUDA)
420
436
#endif // !defined(NDEBUG)
0 commit comments