use cuda_core::{CudaContext, SyncPolicy};
#[test]
fn sync_policy_round_trips_through_every_named_value() {
let ctx = CudaContext::new(0).expect("failed to create CUDA context");
for policy in [
SyncPolicy::BlockingSync,
SyncPolicy::Spin,
SyncPolicy::Yield,
SyncPolicy::Auto,
SyncPolicy::BlockingSync,
] {
ctx.set_sync_policy(policy)
.unwrap_or_else(|e| panic!("set_sync_policy({policy:?}) failed: {e:?}"));
let got = ctx
.sync_policy()
.unwrap_or_else(|e| panic!("sync_policy() after set({policy:?}) failed: {e:?}"));
assert_eq!(
got,
Some(policy),
"sync_policy() must read back exactly what set_sync_policy({policy:?}) wrote"
);
}
}