use std::ops::Deref;
use singe_cuda::testing::DeviceLock;
use crate::{context::Context, error::Result};
pub struct TestContext {
context: Context,
_lock: DeviceLock,
}
impl Deref for TestContext {
type Target = Context;
fn deref(&self) -> &Self::Target {
&self.context
}
}
pub fn setup_context() -> Result<TestContext> {
let device_id: i32 = 0;
let (lock, cuda_context) = singe_cuda::testing::bootstrap_for_device(device_id)?;
let context = Context::create(&cuda_context)?;
Ok(TestContext {
context,
_lock: lock,
})
}