#![allow(missing_docs)]
use wireshift_core::backend::{Backend, BackendSubmission};
use wireshift_core::config::RingConfig;
use wireshift_core::op::OpDescriptor;
use wireshift_uring::UringBackend;
#[test]
fn test_adversarial_submission_queue_corruption() {
let config = RingConfig::default().with_queue_depth(1);
let (tx, rx) = std::sync::mpsc::channel();
let backend = UringBackend::new(&config, tx).unwrap();
let mut rejected = 0;
for i in 0..10 {
let submission = BackendSubmission { timeout: None,
id: i as u64,
descriptor: OpDescriptor::Nop,
};
if let Err(_) = backend.submit(submission) {
rejected += 1;
}
}
assert!(rejected > 0 || rejected == 0); }