use std::error::Error;
use qubit_execution_services::{
ExecutionServices,
ExecutionServicesBuildError,
};
#[test]
fn test_execution_services_build_error_display_and_source() {
let blocking_error = match ExecutionServices::builder()
.blocking_maximum_pool_size(0)
.build()
{
Ok(_) => panic!("invalid blocking pool size should fail"),
Err(error) => error,
};
assert!(matches!(
blocking_error,
ExecutionServicesBuildError::Blocking { .. }
));
assert!(
blocking_error
.to_string()
.starts_with("failed to build blocking executor service:"),
);
assert!(blocking_error.source().is_some());
let cpu_error = match ExecutionServices::builder().cpu_threads(0).build() {
Ok(_) => panic!("invalid cpu thread count should fail"),
Err(error) => error,
};
assert!(matches!(cpu_error, ExecutionServicesBuildError::Cpu { .. }));
assert!(
cpu_error
.to_string()
.starts_with("failed to build cpu executor service:"),
);
assert!(cpu_error.source().is_some());
}