blob: 93981ff5cb7f86db8d87a47593286a6b19e57753 [file] [log] [blame]
/* Verify expected nvptx plugin behavior for "acc_set_cuda_stream" for
"acc_async_sync". */
/* { dg-do run { target openacc_nvidia_accel_selected } } */
/* { dg-set-target-env-var GOMP_DEBUG "1" } */
#undef NDEBUG
#include <assert.h>
#include <openacc.h>
int main(void)
{
int async = 42;
/* Initialize. */
#pragma acc parallel async(acc_async_sync)
;
#pragma acc parallel async(async)
;
#pragma acc wait
void *cuda_stream_sync = acc_get_cuda_stream (acc_async_sync);
assert (cuda_stream_sync == NULL);
void *cuda_stream_async = acc_get_cuda_stream (async);
assert (cuda_stream_async != NULL);
int ret = acc_set_cuda_stream (acc_async_sync, cuda_stream_async);
assert (ret == 0);
void *cuda_stream_sync_ = acc_get_cuda_stream (acc_async_sync);
assert (cuda_stream_sync_ == cuda_stream_sync);
void *cuda_stream_async_ = acc_get_cuda_stream (async);
assert (cuda_stream_async_ == cuda_stream_async);
#pragma acc parallel async(acc_async_sync)
;
#pragma acc parallel async(async)
;
#pragma acc wait
return 0;
}
/* { dg-output "Refusing request to set CUDA stream associated with \"acc_async_sync\"" } */